<template>
	<view class="detail">
		<view class="detail-tabs">
			<u-tabs-swiper ref="uTabs" :list="tabs" :current="current" @change="tabsChange1" :is-scroll="false"
				swiperWidth="750">
			</u-tabs-swiper>
		</view>
		<view v-if="isPlay">
			<video :id="'video'+videoIdx" class="article-video_item" :src="vodSrc" :autoplay="autoplay"
				@fullscreenchange="fullscreenchange" v-show="isPlay" />
		</view>
		<view class="detail-contnet">
			<swiper class="detail-contnet_swiper" :vertical="isVertical" :current="swiperCurrent" duration="300"
				@transition="transition" @animationfinish="animationfinish">
				<swiper-item class="detail-contnet_swiper--item">
					<scroll-view v-if="topics && JSON.parse(JSON.stringify(topics)).length > 0" scroll-y
						class="detail-contnet_swiper--scroll" style="height: 100%" @scrolltolower="getTopicList"
						@refresherrefresh="handleRefresher(0)" refresher-enabled="true"
						:refresher-triggered="isTriggered">
						<view class="search-header" v-if="current == 0" style="color: #006EFF;">
							<u-search :show-action="true" :action-style="{'width': '100rpx'}"
								:action-text="$t('project.btn_cancel')" height="64" shape="square" v-model="bbscontent"
								:placeholder="$t('project.status_content')" @custom="bbsCancel" :focus="false"
								@focus="openList" @search="bbsSearch">
							</u-search>
						</view>
						<view v-show="BBShistorySearchDetail">
							<view class="history" v-if="JSON.parse(JSON.stringify(searchHistoryList)).length > 0">
								<text class="history_text">{{$t('project.history_search')}}</text>
								<view class="icon icon-shanchu" style="float: right;margin-right: 20rpx;"
									@click="BBSclearHistory"></view>
								<view class="history_viewContent">
									<view class="history_view" v-for="(item,index) in BBSsearchHistoryList" :key="index"
										@click="BBSitemSearch(item)">
										{{item}}
									</view>
								</view>
							</view>
						</view>
						<view class="detail-contnet_comment" v-for="(item,index1) in topics" :key="index1">
							<view class="detail-header">
								<view class="article-item" ref="article-item">
									<view class="article-header u-flex">
										<view class="article-header_avatar" @click.stop="go2User(item.AddAcc)">
											<u-image v-if="item.AddAccAvatar" width="85rpx" height="85rpx"
												border-radius="85rpx" :src="item.AddAccAvatar"></u-image>
											<u-image v-else width="85rpx" height="85rpx" border-radius="85rpx"
												src="/static/images/avatar.jpg"></u-image>
										</view>
										<view class="article-header_name u-flex-1">
											<view class="article-header_name--text" @click.stop="go2User(item.AddAcc)">
												{{item.AddAccName}}
											</view>
											<view class="article-header_time">
												<!-- {{item.AddTimeNum}}{{i18n.addtime_type[item.AddTimeNumType]}} -->
												{{item.AddTimeText}}
											</view>
										</view>
										<view class="mgr-30" @click="actDel(item.Tid)" v-if="item.IsAuthor == 1">
											<u-icon name="trash" color="#909399" size="32"></u-icon>
										</view>
										<view :class="['mgr-30',{'article-header_comment': item.IsGood == 1}]"
											@click.stop="actPraise(item.Tid,item.IsGood, index1)">
											<text class="icon icon icon-dianzan"></text>
											<text class="article-handle_item--text"
												v-if="item.Goods > 0">{{item.Goods}}</text>
										</view>
										<!-- 	<view class="mgr-30 article-header_comment" @click="showTransfer(item)">
											<text class="icon icon-zhuanfa"></text>
										</view> -->
										<view class="article-header_comment" @click="actComment(item.Tid,index)">
											<text class="icon icon-pinglun"></text>
										</view>
										<!-- 	<view class="detail-header_tag" v-if="item.IndexNo != ''">
				    					{{item.IndexNo}}
				    				</view> -->
									</view>
									<view class="article-content">
										<view class="project-header_item current hidden"
											@click="$goPage('/repair/project',{project: item.Project, iid: prjItem.Iid})"
											v-if="item.ProjectItem != null" v-for="prjItem in item.ProjectItem">
											{{prjItem.IndexNo}}{{' '}}{{prjItem.ItemName}}
										</view>
										<view class="project-header_item current hidden"
											@click="$goPage('/repair/project',{project: item.Project, iid: item.Item})"
											v-if="item.ItemName != ''">
											{{item.IndexNo}}{{' '}}{{item.ItemName}}
										</view>
										<!-- <rich-text class="rich-val" :nodes="item.Content" :selectable="true"></rich-text> -->
										<u-parse :content="item.Content" :selectable="true"></u-parse>
									</view>
									<view class="article-video" v-if="item.VodSrc != ''"
										@click.stop="actVideoPlay(item.VodSrc)">
										<image class="article-video_img" mode="aspectFit" :src="item.VodImg">
										</image>
										<view class="article-video_play" v-if="!isPlay">
											<image class="article-video_play--icon" src="/static/images/home/play.png"
												mode="scaleToFill" />
										</view>
									</view>
									<view class="article-images">
										<template v-for="(img, index) in item.ImgPackJson">
											<images-item :item="img" :index="index" :imgjson="item.ImgPackJson">
											</images-item>
										</template>
									</view>
									<view class="article-annex" v-if="item.AttPackJson != ''">
										<template v-for="(item2,index2) in item.AttPackJson">
											<preview-pdf :item="item2" :index="index2"></preview-pdf>
										</template>
									</view>
									<view v-if="item.LikeStaffsText != ''" class="like-staffs">
										<u-icon name="heart" color="#515b7c" size="30" style="padding-left: 8rpx;">
										</u-icon>
										<text> {{' '}}{{item.LikeStaffsText}}</text>
									</view>
								</view>
							</view>
							<view class="detail-comment" v-if="item.ReplyList && item.ReplyList.length > 0">
								<view class="detail-comment_header u-flex u-row-between u-border-bottom">
									<view class="comment-header_title u-flex">
										<image class="comment-header_title--icon"
											src="/static/images/home/icon-shequ.png" mode="scaleToFill" />
										<view class="comment-header_title--label">{{$t('project.comment')}}</view>
									</view>
								</view>
								<template v-for="replies in item.ReplyList">
									<view class="detail-comment_item u-flex u-col-top u-border-bottom">
										<view class="comment-item_avatar" @click.stop="go2User(replies.AddAcc)">
											<u-image v-if="replies.UserAvatar" width="68rpx" height="68rpx"
												border-radius="68rpx" :src="replies.UserAvatar"></u-image>
											<u-image v-else width="68rpx" height="68rpx" border-radius="68rpx"
												src="/static/images/avatar.jpg"></u-image>
										</view>
										<view class="comment-item_content u-flex-1">
											<view class="item-content_header u-flex u-row-between u-col-top">
												<view class="item-content_header--left">
													<view class="item-content_header--name"
														@click.stop="go2User(replies.AddAcc)">{{replies.UserName}}
													</view>
													<view class="item-content_header--time">
														{{replies.AddTimeNum}}{{$t('project.addtime_type.'+replies.AddTimeNumType)}}
													</view>
												</view>
												<view class="item-content_header--right u-flex">
													<u-icon name="trash-fill" color="#2979ff" size="34"
														style="margin-top:-2rpx"
														v-if="replies.AddAcc == $store.state.vuex_user.uid"
														@click="actDeleteReplyShow(replies.Topic, replies.Rid)">
													</u-icon>
													<view class="u-m-l-20 article-header_comment"
														@click="actComment1(replies.Topic,replies.Rid)">
														<text class="icon icon-pinglun" style="color:#2979ff;"></text>
													</view>
												</view>
											</view>
											<!-- <rich-text :nodes="replies.Content"></rich-text> -->
											<u-parse :content="replies.Content" :selectable="true"></u-parse>
											<text class="article-content_friends"
												v-if="replies.FriendAccName">{{replies.FriendAccName}}</text>
											<view class="article-video" v-if="replies.VodSrc != ''"
												@click.stop="actVideoPlay(replies.VodSrc)">
												<image class="article-video_img" mode="aspectFit" :src="replies.VodImg">
												</image>
												<view class="article-video_play" v-if="!isPlay">
													<image class="article-video_play--icon"
														src="/static/images/home/play.png" mode="scaleToFill" />
												</view>
											</view>
											<view class="article-images" v-else>
												<template v-for="(img, index) in replies.SmallImgPackJson"
													v-if="replies.SmallImgPackJson">
													<reply-images-item :item="img" :index="index"
														:imgjson="replies.SmallImgPackJson"
														:bigImgJson="replies.BigImgPackJson"></reply-images-item>
												</template>
												<template v-for="(img, index) in replies.ImgPackJson"
													v-if="!replies.SmallImgPackJson">
													<reply-images-item :item="img" :index="index"
														:imgjson="replies.ImgPackJson"
														:bigImgJson="replies.BigImgPackJson">
													</reply-images-item>
												</template>
											</view>
											<view class="article-annex" v-if="item.AttPackJson != ''">
												<template v-for="(repliesitem2,repliesindex2) in replies.AttPackJson">
													<preview-pdf :item="repliesitem2" :index="repliesindex2">
													</preview-pdf>
												</template>
											</view>

											<!--评论的评论开始界面-->
											<view v-for="(item1,index) in replies.RepliesDetails"
												style="margin-top:30rpx">
												<view class="comment-item_content u-flex-1">
													<view class="item-content_header u-flex u-row-between u-col-top">
														<view class="item-content_header--left u-flex">
															<view class="comment-item_avatar"
																@click.stop="go2User(item1.AddAcc)">
																<u-image v-if="item1.UserAvatar" width="68rpx"
																	height="68rpx" border-radius="68rpx"
																	:src="item1.UserAvatar"></u-image>
																<u-image v-else width="68rpx" height="68rpx"
																	border-radius="68rpx"
																	src="/static/images/avatar.jpg"></u-image>
															</view>
															<view>
																<view class="item-content_header--left u-flex u-m-t-4">
																	<view class="item-content_header--name u-font-26"
																		@click="go2User(item1.AddAcc)">
																		{{item1.UserName}}
																	</view>
																	<view class="item-content_header--name u-font-26"
																		v-if="item1.Lev == 1"
																		@click="go2User(item1.ReplyId)">
																		<view v-if="item1.Lev == 1">
																			<u-icon name="play-right-fill" size="20"
																				color="#8f9696"
																				class="u-m-l-10 u-m-r-10"></u-icon>
																			{{item1.ReplyName}}
																		</view>
																	</view>
																</view>
																<view class="item-content_header--time u-font-22"
																	style="color: #B0B3B8">{{item1.AddTimeText}}</view>
															</view>
														</view>
														<view class="u-flex">
															<view class="item-content_header--right u-flex">
																<u-icon name="trash-fill" color="#2979ff" size="34"
																	style="margin-top:-2rpx"
																	v-if="item1.AddAcc == $store.state.vuex_user.uid"
																	@click="actDeleteReplyShow(item1.Rid)"></u-icon>
															</view>
															<view class="u-m-l-20 article-header_comment"
																@click="actComment1(item1.Topic,item1.Rid)">
																<text class="icon icon-pinglun"
																	style="color:#2979ff"></text>
															</view>
														</view>
													</view>
													<view class="u-m-l-80">
														<!-- 	<rich-text class="item-content_text" :nodes="item1.Content"
															style="font-size: 26rpx"></rich-text> -->
														<u-parse :content="item1.Content"
															:containerStyle="'font-size: 26rpx;color: #5D5D5F;word-break: break-all;word-break: break-word;white-space: pre-line;'"
															:selectable="true"></u-parse>
														<text class="article-content_friends"
															v-if="item1.FriendAccName">{{item1.FriendAccName}}</text>
														<view class="article-video" v-if="item1.VodSrc != ''"
															@click.stop="actVideoPlay(item1.VodSrc)">
															<image class="article-video_img" mode="aspectFit"
																:src="item1.VodImg">
															</image>
															<view class="article-video_play" v-if="!isPlay">
																<image class="article-video_play--icon"
																	src="/static/images/home/play.png"
																	mode="scaleToFill" />
															</view>
														</view>
														<view class="article-images" v-else>
															<template v-for="(img, index) in item1.SmallImgPackJson"
																v-if="item1.SmallImgPackJson">
																<image :src="img.Src"
																	@click.stop="actPreviewImage2(item1.SmallImgPackJson,item1.BigImgPackJson,index)"
																	width="100rpx" mode="widthFix">></image>
																<reply-images-item :item="img" :index="index"
																	:imgjson="item1.SmallImgPackJson"
																	:bigImgJson="item1.BigImgPackJson">
																</reply-images-item>
															</template>
															<template v-for="(img, index) in item1.ImgPackJson"
																v-if="!item1.SmallImgPackJson">
																<image :src="img.Src"
																	@click.stop="actPreviewImage2(item1.ImgPackJson,item1.BigImgPackJson,index)"
																	style="width:100rpx" mode="widthFix"></image>
															</template>
														</view>
														<view class="article-annex" v-if="item.AttPackJson != ''">
															<template
																v-for="(repliesitem2,repliesindex2) in item1.AttPackJson">
																<preview-pdf :item="repliesitem2"
																	:index="repliesindex2"></preview-pdf>
															</template>
														</view>
													</view>

												</view>
											</view>
											<!--评论的评论结束界面-->
										</view>
									</view>
								</template>
							</view>
						</view>
						<u-modal v-model="deleteReplyShow" :show-cancel-button="true" :show-title="false"
							:cancelText="$t('mine.btn_cancel')" :confirmText="$t('mine.btn_confirm')"
							:content="$t('mine.bbs_confirm_del_reply')" @confirm="actDeleteReply()">
						</u-modal>
						<u-loadmore :status="loadStatus" :icon-type="iconType" :load-text="loadText" margin-bottom="45"
							margin-top="45" color="#C1C0C0" />
						<!-- 删除动态 -->
						<u-modal v-model="deleteShow" :show-cancel-button="true" :show-title="false"
							:cancelText="$t('project.btn_cancel')" :confirmText="$t('project.btn_confirm')"
							:content="$t('project.del_follow')" @confirm="actCommentDel"></u-modal>
						<!-- 发表评论 -->
						<u-popup v-model="isComment" mode="bottom" :safe-area-inset-bottom="true">
							<view class="comment-box">
								<view class="u-flex u-row-between">
									<u-avatar :src="$store.state.vuex_user.avatar"></u-avatar>
									<button class="btnStyle" :disabled="isSend" @click="submit('动态')"
										style="margin-right: 0;margin-top: -10rpx">
										{{$t('project.btn_publish')}}
									</button>
								</view>
								<view class="inputStyle">
									<textarea v-model="form.Content" placeholder-style="color:#999"
										:placeholder="$t('project.pub_tips')" @input="commentInput" @blur="textblur" />
									<view class="publish-images" v-if="!showUploadList">
										<template v-for="(item, index) in fileList">
											<view class="publish-images_item" :data-index="index"
												@click.stop="actPreviewImage">
												<view @click.stop="deleteItem(index)">
													<u-icon width="42" height="42" name="close-circle-fill"
														color="#fa3534" size="42"></u-icon>
												</view>
												<u-image width="118rpx" height="118rpx" :src="item.url"
													mode="aspectFill" border-radius="10">
												</u-image>

											</view>
										</template>

										<!-- 视频 -->
										<view class="uni-uploader__file" v-if="src != ''">
											<view class="uploader_video" @click="actVideoPlay(src)">
												<view @click.stop="delectVideo()" class="close-icon">
													<u-icon width="46" height="46" name="close-circle-fill"
														color="#fa3534" size="46"></u-icon>
												</view>
												<image class="uploader_video_play--icon"
													src="/static/images/home/play.png" mode="scaleToFill" />
												<u-image width="118rpx" height="118rpx" class="article-video_img"
													mode="widthFix"
													:src="VodImg+'?imageMogr2/crop/118x118/gravity/center'"
													v-if="!isPlay"></u-image>
											</view>
											<video id="video" :src="src" class="video" object-fit="fill"
												:autoplay="autoplay" @fullscreenchange="fullscreenchange"
												@ended="colseVideoPlay" v-if="isPlay"></video>
										</view>
									</view>
									<!-- 	<view>
															  <view v-for="(item,index) in files.values()" :key="index" class="u-flex">
															  	<view class="color-blue u-font-30">{{ item.name}}</view>
															  	<u-line-progress active-color="#2979ff" :percent="item.progress" class="u-m-l-20" style="width:300rpx " v-if="item.progress < 100"></u-line-progress>
															  	<u-icon name="close-circle" @click="clear(item.name)" class="u-m-l-20" size="36" color="#989a9a"></u-icon>
															  </view>
															</view> -->
									<view class="publish-friends" v-if="friends.length > 0">
										<text class="publish-friends_item"
											v-for="item in friends">@{{item.FriendName}}</text>
									</view>
								</view>
								<view class='u-flex'>
									<view>
										<button class="comBtnStyle u-m-t-20"
											@click="isCommonTerms = true">{{$t('mine.fast_reply')}}</button>
									</view>

									<view class="icon icon-biaoqing-expression1-01 u-m-l-30 u-m-t-20 u-m-r-20"
										@click.stop="actEmojiShow()" style="font-size:58rpx;color: #7e7f84"></view>

									<view class="publish-handle_left u-flex u-m-t-20">
										<text class="icon icon-tupian1" style="color: #464747"
											@click="showImagePicker"></text>
										<u-popup v-model="isShowImagePicker" mode="bottom">
											<view class="popup-item" @click="chooseImage('camera')">
												{{ $t('chat.shot') }}
											</view>
											<view class="popup-item" @click="chooseImage('album')">
												{{ $t('chat.choose_from_album')}}
											</view>
											<view class="divider"></view>
											<view class="popup-item" @click="isShowImagePicker = false">
												{{ $t('chat.chat_cancel') }}
											</view>
										</u-popup>
										<view class="u-m-l-30" @click="actChooseVideo" v-show="fileList.length == 0">
											<text class="icon icon-shipin"></text>
										</view>
										<!-- <view class="publish-handle_left--item">
																	<lsj-upload
																	ref="lsjUpload0"
																	childId="upload1"
																	:width="width"
																	:height="height"
																	:option="option"
																	:size="size"
																	:formats="formats"
																	:debug="debug"
																	:instantly="instantly"
																	@change="onChange"
																	@progress="onprogress"
																	@uploadEnd="onuploadEnd"
																	>
																	<view class="icon icon-wenjianjiatianjia"></view>
																	</lsj-upload>
																</view> -->
										<view class="u-m-l-30" style="margin-top:-12rpx"
											@click="$goPage('/note/friends', {}, true)">
											<text class="">@</text>
										</view>
									</view>
								</view>
								<view v-if="emojiShow" class="TUI-Emoji-area">
									<TUI-Emoji @enterEmoji="appendMessage"></TUI-Emoji>
								</view>

							</view>
						</u-popup>
						<!-- 关键字 -->
						<u-popup v-model="isCommonTerms" mode="top" :mask="false">
							<view class="tui-common-words-container">
								<view class="tui-common-words-box">
									<view class="tui-common-words-title">
										<view></view>
										<view style="color: #006EFF; font-family: PingFangSC-Regular;"
											class="tui-common-words-close" @tap="isCommonTerms = false">
											{{$t('project.common_close')}}
										</view>
									</view>
									<scroll-view class="tui-common-words-list" scroll-y="true" enable-flex="true">
										<view v-for="(item, index) in commonWordsList" :key="index"
											class="tui-common-words-item" @tap="checkCommonWord"
											:data-words="item.Title">{{item.Title}}</view>
									</scroll-view>
								</view>
							</view>
						</u-popup>
						<!-- 转发群聊 -->
						<u-popup v-model="isTransfer" mode="center" border-radius="20">
							<view class="check-box">
								<view class="check-title">{{$t('project.transfer_group_chat')}}</view>
								<scroll-view scroll-y="true" style="height: 500rpx;">
									<u-radio-group @change="radioGroupChange">
										<view class="check-item u-flex u-border-bottom"
											v-for="(item, index) in groupList" :key="index">
											<view style="width:400rpx;" class="check-item_txt u-flex-1">
												{{item.GroupName}}
											</view>
											<u-radio :name="item.Gid" v-model="item.Gid"></u-radio>
										</view>
									</u-radio-group>
								</scroll-view>
								<view>{{$t('project.transfer_notice')}}</view>
								<view class="confrim-btn">
									<u-button style="margin-top: 8rpx;" type="primary" @click="actTransfer">
										{{$t('project.transfer')}}
									</u-button>
								</view>
							</view>
						</u-popup>
						<view class="fixed-publish" @click="goPublish(2)">
							<u-image width="84rpx" height="84rpx" src="/static/images/issue.png" mode=""></u-image>
						</view>

					</scroll-view>
				</swiper-item>
				<swiper-item class="detail-contnet_swiper--item">
					<group-box :pid="project" v-if="swiperCurrent == 1"></group-box>
				</swiper-item>
				<swiper-item class="detail-contnet_swiper--item" @touchstart="touchStart" @touchend="touchEnd">
					<scroll-view scroll-y class="detail-contnet_swiper--scroll" style="height: 100%"
						@scrolltolower="onreachBottom" @refresherrefresh="handleRefresher(2)" refresher-enabled="true"
						:refresher-triggered="isTriggered">
						<view class="search-header" v-if="swiperCurrent == 2">
							<u-search :show-action="true" :action-text="$t('project.btn_cancel')" height="64"
								shape="square" :placeholder="$t('project.item_seach')" v-model="keyword"
								@custom="actCancel" :action-style="{width:btnWidth + 'rpx'}" :focus="false"
								@focus="openList" @search="actSearch"></u-search>
						</view>
						<view v-show="historySearchDetail">
							<view class="history" v-if="JSON.parse(JSON.stringify(searchHistoryList)).length>=1">
								<view class="iconfont icon-lishi:before" style="width: 17rpx;display: inline;"></view>
								<text class="history_text">{{$t('project.history_search')}}</text>
								<view class="icon icon-shanchu" style="float: right;margin-right: 20rpx;"
									@click="clearHistory()"></view>
								<view class="history_viewContent">
									<view class="history_view" v-for="(item,index) in searchHistoryList" :key="index"
										@click="itemSearch(item)">
										{{item}}
									</view>
								</view>
							</view>
						</view>
						<view class="detail-repair_header">
							<view class="u-flex u-col-top">
								<view class="detail-repair_header--name u-flex-1 mgr-30" @click="getItemList">
									<text class="icon icon-lunchuan" style="font-size: 48rpx;"></text>
									<text class="detail-repair_header--text" style="color: #006EFF;"
										:selectable="true">{{menu.ProjectName}}</text>
								</view>
								<view class="detail-repair_header--right">
									<u-button class="detail-repair_header--button w-140" plain
										@click="$goPage('/repair/project',{project:project,iid:iid,title:$t('project.log')})">
										{{$t('project.log')}}
									</u-button>
									<u-button class="detail-repair_header--button w-140 mgt-20" plain
										@click="actShowExport">{{$t('project.export')}}
									</u-button>
								</view>
								<!--								<view class="check-btn" @click="isCheck = true">-->
								<!--									验-->
								<!--								</view>-->
							</view>
							<view class="detail-repair_header--left">
								<view class="detail-repair_header--price" v-if="menu.AmountText != '' && prcPermission">
									<view>
										{{$t('project.total_amount')}}:
										<text class="detail-repair_header--number u-m-l-10 u-m-r-20"
											style="color: black;">{{menu.AmountText}}</text>
									</view>
									<span v-if="discount!=0">
										{{$t('project.discount')}}:
										<text class="detail-repair_header--number u-m-l-10"
											style="color: black;margin-right:70rpx">{{discount}}%</text>
										{{$t('project.grand_total')}}:
										<text class="detail-repair_header--number u-m-l-10"
											style="color: black;">{{ menu.DisAmountText}}</text>
										<!-- <text class="detail-repair_header--number u-m-l-10" style="color: black;">{{ parseFloat(menu.AmountText.replace(/[,]/g,""))*(100-discount)/100}}</text> -->
									</span>
								</view>
								<template v-for="(item,index) in menu.MenuList">
									<view class="project-header_item_flex">
										<view
											:class="['project-header_item project-header_item_flex', (index == menu.MenuList.length -1) ? 'current':'']"
											@click="getItemList(item.Iid)">
											<text class="project-header_text current"
												v-if="index == menu.MenuList.length -1">
												<text class="indexno" v-if="item.IndexNo">{{item.IndexNo}}</text>
												<text class="u-m-l-10" style="color:black"
													:selectable="true">{{item.ItemName}}</text>
											</text>
											<view class="has_children" v-if="index != menu.MenuList.length -1">
												<i class="icon icon-mulu"></i>
												<text class="indexno" v-if="item.IndexNo">{{item.IndexNo}}</text>
												<text class="u-m-l-10" :selectable="true">{{item.ItemName}}</text>
											</view>
										</view>
									</view>
									<!-- 	<view
			  										:class="['project-header_item', (index == menu.MenuList.length -1) ? 'current':'']"
			  										@click="getItemList(item.Iid)">
			  										<text class="project-header_text current">{{item.IndexNo}}
			  											{{item.ItemName}}</text>
			  										<text class="icon icon-xiangqing"
			  											v-if="index != menu.MenuList.length -1"></text>
			  									</view> -->
									<!--  v-if="item.ActAdd!=1||item.ApyStat!=1" -->
								</template>
							</view>
						</view>
						<view class="detail-repair_content"
							v-if="projectItemList && JSON.parse(JSON.stringify(projectItemList)).length > 0">
							<u-checkbox-group class="detail-repair_group">
								<view v-for="(item, index) in projectItemList">
									<view class="detail-repair_item u-flex" v-if="item.ActAdd!=1||item.ApyStat!=1">
										<view class="checkbox-box" v-if="isCheck">
											<u-checkbox @change="checkChange" v-model="item.stat"
												:disabled="item.Stat > 3" :name="index">
											</u-checkbox>
										</view>
										<!-- <view class="u-flex-1"	@click="$goPage('/repair/project',{project: item.Project, iid: item.Iid})"> -->
										<view class="u-flex-1"
											@click="goToProjectOrConfirm(item.Project, item.Iid ,item.IsConfirm)">

											<view class="detail-repair_item--name u-flex u-row-between u-col-top">
												<view class="u-flex u-col-top">
													<view class="detail-repair_item--order u-border u-m-r-10"
														v-if="item.IndexNo != ''">
														{{item.IndexNo}}
														<!-- <text class="tag" v-if="item.IsConfirm != 0 ">{{i18n.confirm_stat[item.IsConfirm]}}</text> -->
													</view>
													<text class="u-flex-1" :selectable="true">
														{{item.ItemName}}
														<text class="tag"
															v-if="item.IsConfirm != 0 ">{{$t('project.confirm_stat.'+item.IsConfirm)}}</text>
														<!-- <text class="tag" v-if="item.IsConfirm == 1 ">{{i18n.to_confirm}}</text>
														<text class="tag"
															v-else-if="item.IsConfirm == 2 ">{{i18n.to_confirmJT}}</text> -->

													</text>
												</view>
												<u-icon name="arrow-right" color="#a8abb7" top="10"></u-icon>
											</view>
											<view class="detail-repair_item--info">
												<view v-if="prcPermission"
													class="detail-repair_item--child detail-repair_item--price u-flex u-flex-1"
													style="white-space:nowrap">
													{{$t('project.total_amount')}}:
													<text class="detail-repair_item--number"
														style="color: #6c6c6c;white-space:nowrap">{{item.SumAmountText}}
													</text>
													<!-- <text v-if="item.Count > 0">
			  									({{i18n.this_item}}:{{item.AmountText!=''?item.AmountText:0}})</text>
			  								<text v-if="item.AmountText != '0'"> ({{i18n.this_item}}:{{item.AmountText}})</text> -->
													<text
														v-if="item.Count > 0 && item.AmountText!='' && item.AmountText!=0"
														style="white-space: nowrap">
														({{$t('project.this_item')}}:{{item.AmountText}})</text>
												</view>
												<u-button v-if="item.Count > 0" class="detail-repair_header--button"
													plain @click.stop="getItemList(item.Iid)">
													{{$t('project.sub_item')}}{{item.Count}}
												</u-button>
												<!-- <view class="detail-repair_item--child child-btn" v-if="item.Count > 0"
			  												@click.stop="getItemList(item.Iid)">
			  												<text class="detail-repair_item--child__label" style="color: #006EFF;">{{i18n.sub_item}}</text>
			  												<text
			  													class="detail-repair_item--child__value child-btn_count" style="color: #006EFF;">{{item.Count}}</text>
			  											</view> -->
											</view>
										</view>
									</view>
								</view>
							</u-checkbox-group>
							<u-loadmore :status="status" :icon-type="iconType" :load-text="loadText" margin-bottom="45"
								margin-top="45" color="#C1C0C0" />
							<view class="check-footer" v-if="isNext">
								<u-button size="mini" @click="actCheck()">{{$t('project.next_step')}}</u-button>
							</view>
						</view>
						<view class="empty-wrap" v-else>
							<u-empty :text="$t('project.empty_txt')" mode="list"></u-empty>
						</view>
						<u-popup v-model="isCheckPopup" mode="center" border-radius="20">
							<view class="check-box">
								<view class="check-title">选择交验人</view>
								<scroll-view scroll-y="true" style="height: 500rpx;">
									<u-radio-group @change="radioChange">
										<view class="check-item u-flex u-border-bottom"
											v-for="(item, index) in checkLists" :key="index">
											<view class="check-item_txt u-flex-1">{{item.nickname}}</view>
											<u-radio :name="item.user" v-model="item.user"></u-radio>
										</view>
									</u-radio-group>
								</scroll-view>
								<view class="confrim-btn">
									<u-button type="primary" @click="nextFunc">确认</u-button>
								</view>
							</view>
						</u-popup>
						<u-modal v-model="showExport" :title="$t('project.export_title')" :show-cancel-button="true"
							:confirm-text="$t('project.btn_confirm')" :cancel-text="$t('project.btn_cancel')"
							@confirm="sendEmail">
							<!-- <view v-if="$store.state.vuex_user && $store.state.vuex_user.email != ''" class="center">Email：{{$store.state.vuex_user.email}}
							</view> -->
							<view class="reject-content1" v-for="(item, index) in emaillist">
								{{$t('mine.user_email')}}：<span>{{item}}</span><br>
							</view>
							<view class="reject-content2">
								<!-- <u-button @click="showAddEmail" >添加邮箱地址</u-button> -->
								<u-button type="primary" :plain="true" text="添加邮箱地址"
									@click="showAddEmail">{{$t('mine.add_email')}}</u-button>
							</view>
							<view class="reject-content">
								<!-- 								<u-input placeholder="其它邮箱:(多个邮箱用;隔开)" v-model="exportEmail"
									type="text" height="50" /> -->
								<u-input :placeholder="$t('project.export_content')" v-model="exportContent"
									type="textarea" height="140" />
							</view>
							<u-modal v-model="showExportEmail" :title="$t('mine.add_email')" :show-cancel-button="true"
								:confirm-text="$t('project.btn_confirm')" :cancel-text="$t('project.btn_cancel')"
								@confirm="addEmail">
								<view class="reject-content">
									<u-input :placeholder="$t('mine.email_form')" v-model="exportEmailNew"
										type="textarea" height="140" />
									<!-- <u-input :placeholder="$t('project.export_content')" v-model="exportContent"
										type="textarea" height="140" /> -->
								</view>
							</u-modal>
						</u-modal>
					</scroll-view>
				</swiper-item>
				<swiper-item class="detail-contnet_swiper--item confirm">
					<client-confirm-box :project="project" :tab="tabnew" :confirm="confirm" v-if="swiperCurrent == 3">
					</client-confirm-box>
				</swiper-item>
				<swiper-item class="detail-contnet_swiper--item">
					<scroll-view scroll-y class="detail-contnet_swiper--scroll" style="height: 100%"
						@scrolltolower="onreachBottom" @refresherrefresh="handleRefresher(4)" refresher-enabled="true"
						:refresher-triggered="isTriggered">
						<view v-if="ctrPermission == 1">
							<view class="detail-contract_header">
								<view class="repair-item_cell">
									<text class="repair-item_cell--label">{{$t('project.fix_amount')}}：</text>
									<text class="repair-item_cell--value">{{contract.Fee}}</text>
								</view>
								<view class="repair-item_cell">
									<text class="repair-item_cell--label">{{$t('project.fix_period')}}：</text>
									<text class="repair-item_cell--value">{{contract.Period}}</text>
								</view>
								<view class="repair-item_cell">
									<text class="repair-item_cell--label">{{$t('project.warranty_period')}}：</text>
									<text class="repair-item_cell--value">{{contract.Quality}}</text>
								</view>
								<view class="repair-item_cell">
									<text class="repair-item_cell--label">{{$t('project.file_contract')}}：</text>
									<text class="repair-item_cell--value" v-for="(item,index) in files" :key="index">
										<template v-for="(item2,index2) in item.AttPackJson">
											<preview-pdf :item="item2" :index="index2"></preview-pdf>
										</template>
									</text>
								</view>
							</view>
							<view class="detail-contract_content">
								<view class="detail-comment_header u-flex u-row-between u-border-bottom">
									<view class="comment-header_title u-flex">
										<image class="comment-header_title--icon"
											src="/static/images/home/icon-shequ.png" mode="scaleToFill" />
										<view class="comment-header_title--label">{{$t('project.contract_comment')}}
										</view>
									</view>
								</view>
								<template v-if="contractReply && contractReply.length >0">
									<view class="article-item" v-for="(item, index2) in contractReply">
										<view class="article-header u-flex">
											<view class="article-header_avatar" @click.stop="go2User(item.AddAcc)">
												<u-image v-if="item.AddAccAvatar" width="85rpx" height="85rpx"
													border-radius="85rpx" :src="item.AddAccAvatar"></u-image>
												<u-image v-else width="85rpx" height="85rpx" border-radius="85rpx"
													src="/static/images/avatar.jpg"></u-image>
											</view>
											<view class="article-header_name u-flex-1">
												<view class="article-header_name--text"
													@click.stop="go2User(item.AddAcc)">{{item.AddAccName}}
												</view>
												<view class="article-header_time">
													{{item.AddTimeNum}}
													{{$t('project.addtime_type.'+item.AddTimeNumType)}}
												</view>
											</view>
											<view class="article-header_comment u-flex"
												@click="actComment(item.Tid,index2)">
												<text class="icon icon-pinglun"></text>{{$t('project.comment')}}
											</view>
										</view>
										<!-- <rich-text :nodes="item.Content"></rich-text> -->
										<u-parse :content="item.Content" :selectable="true"></u-parse>
										<view class="article-video" v-if="item.VodSrc != ''"
											@click.stop="actVideoPlay(item.VodSrc)">
											<image class="article-video_img" mode="aspectFit" :src="item.VodImg">
											</image>
											<view class="article-video_play" v-if="!isPlay">
												<image class="article-video_play--icon"
													src="/static/images/home/play.png" mode="scaleToFill" />
											</view>
										</view>
										<view class="article-images" v-else>
											<template v-for="(img, index) in item.ImgPackJson">
												<images-item :item="img" :index="index" :imgjson="item.ImgPackJson">
												</images-item>
											</template>
										</view>
										<template v-for="replies in item.ReplyList">
											<view class="detail-comment_item u-flex u-col-top u-border-top">
												<view class="comment-item_avatar" @click.stop="go2User(replies.AddAcc)">
													<u-image v-if="replies.UserAvatar" width="68rpx" height="68rpx"
														border-radius="68rpx" :src="replies.UserAvatar"></u-image>
													<u-image v-else width="68rpx" height="68rpx" border-radius="68rpx"
														src="/static/images/avatar.jpg"></u-image>
												</view>
												<view class="comment-item_content u-flex-1">
													<view class="item-content_header u-flex u-row-between u-col-top">
														<view class="item-content_header--left">
															<view class="item-content_header--name">{{replies.UserName}}
															</view>
															<view class="item-content_header--time">
																{{replies.AddTimeText}}
															</view>
														</view>
													</view>
													<view class="item-content_text ">{{replies.Content}}</view>
													<text class="article-content_friends"
														v-if="replies.FriendAccName">{{replies.FriendAccName}}
													</text>
													<view class="article-video" v-if="replies.VodSrc != ''"
														@click.stop="actVideoPlay(replies.VodSrc)">
														<image class="article-video_img" mode="aspectFit"
															:src="replies.VodImg">
														</image>
														<view class="article-video_play" v-if="!isPlay">
															<image class="article-video_play--icon"
																src="/static/images/home/play.png" mode="scaleToFill" />
														</view>
													</view>
													<view class="article-images" v-else>
														<template v-for="(img, index) in replies.SmallImgPackJson"
															v-if="replies.SmallImgPackJson">
															<reply-images-item :item="img" :index="index"
																:imgjson="replies.SmallImgPackJson"
																:bigImgJson="replies.BigImgPackJson">
															</reply-images-item>
														</template>
														<template v-for="(img, index) in replies.ImgPackJson"
															v-if="!replies.SmallImgPackJson">
															<reply-images-item :item="img" :index="index"
																:imgjson="replies.ImgPackJson"
																:bigImgJson="replies.BigImgPackJson">
															</reply-images-item>
														</template>
													</view>
												</view>
											</view>
										</template>
									</view>
								</template>
								<view class="empty-cnt" v-else>
									<u-empty :text="$t('project.empty_txt')" mode="list"></u-empty>
								</view>
								<u-loadmore :status="status" :icon-type="iconType" :load-text="loadText"
									margin-bottom="45" margin-top="45" color="#C1C0C0" />
								<!-- 	<u-popup v-model="isComment" mode="bottom" :safe-area-inset-bottom="true">
			  										<view class="comment-box">
			  											<view class="inputStyle">
			  												<textarea v-model="form.Content" placeholder-style="color:#999"
			  													:placeholder="$t('project.pub_tips')" @input="commentInput" />
			  											</view>
			  											<button class="btnStyle" :disabled="isSend"
			  												@click="submit('合同')" style="margin-top:50rpx;margin-bottom: 40rpx">{{$t('project.btn_publish')}}</button>
			  										</view>
			  									</u-popup> -->
								<u-popup v-model="isComment" mode="bottom" :safe-area-inset-bottom="true">
									<view class="comment-box">
										<view class="u-flex u-row-between">
											<u-avatar :src="$store.state.vuex_user.avatar"></u-avatar>
											<button class="btnStyle" :disabled="isSend" @click="submit('动态')"
												style="margin-right: 0;margin-top: -10rpx">
												{{$t('project.btn_publish')}}
											</button>
										</view>
										<view class="inputStyle">
											<textarea v-model="form.Content" placeholder-style="color:#999"
												:placeholder="$t('project.pub_tips')" @input="commentInput"
												@blur="textblur" />
											<view class="publish-images" v-if="!showUploadList">
												<template v-for="(item, index) in fileList">
													<view class="publish-images_item" :data-index="index"
														@click.stop="actPreviewImage">
														<view @click.stop="deleteItem(index)">
															<u-icon width="42" height="42" name="close-circle-fill"
																color="#fa3534" size="42"></u-icon>
														</view>
														<u-image width="118rpx" height="118rpx" :src="item.url"
															mode="aspectFill" border-radius="10">
														</u-image>

													</view>
												</template>

												<!-- 视频 -->
												<view class="uni-uploader__file" v-if="src != ''">
													<view class="uploader_video" @click="actVideoPlay(src)">
														<view @click.stop="delectVideo()" class="close-icon">
															<u-icon width="46" height="46" name="close-circle-fill"
																color="#fa3534" size="46"></u-icon>
														</view>
														<image class="uploader_video_play--icon"
															src="/static/images/home/play.png" mode="scaleToFill" />
														<u-image width="118rpx" height="118rpx"
															class="article-video_img" mode="widthFix"
															:src="VodImg+'?imageMogr2/crop/118x118/gravity/center'"
															v-if="!isPlay"></u-image>
													</view>
													<video id="video" :src="src" class="video" object-fit="fill"
														:autoplay="autoplay" @fullscreenchange="fullscreenchange"
														@ended="colseVideoPlay" v-if="isPlay"></video>
												</view>
											</view>
											<!--                           上传文件的显示-->
											<!-- <view>
											  <view v-for="(item,index) in files.values()" :key="index" class="u-flex">
											  	<view class="color-blue u-font-30">{{ item.name}}</view>
											  	<u-line-progress active-color="#2979ff" :percent="item.progress" class="u-m-l-20" style="width:300rpx " v-if="item.progress < 100"></u-line-progress>
											  	<u-icon name="close-circle" @click="clear(item.name)" class="u-m-l-20" size="36" color="#989a9a"></u-icon>
											  </view>
											</view> -->
											<view class="publish-friends" v-if="friends.length > 0">
												<text class="publish-friends_item"
													v-for="item in friends">@{{item.FriendName}}</text>
											</view>
										</view>
										<view class='u-flex'>
											<view>
												<button class="comBtnStyle u-m-t-20"
													@click="isCommonTerms = true">{{$t('mine.fast_reply')}}</button>
											</view>
											<view class="icon icon-biaoqing-expression1-01 u-m-l-30 u-m-t-20 u-m-r-20"
												@click.stop="actEmojiShow()" style="font-size:58rpx;color: #7e7f84">
											</view>
											<view class="publish-handle_left u-flex u-m-t-20">
												<text class="icon icon-tupian1" style="color: #464747"
													@click="showImagePicker"></text>
												<u-popup v-model="isShowImagePicker" mode="bottom">
													<view class="popup-item" @click="chooseImage('camera')">
														{{ $t('chat.shot') }}
													</view>
													<view class="popup-item" @click="chooseImage('album')">
														{{ $t('chat.choose_from_album')}}
													</view>
													<view class="divider"></view>
													<view class="popup-item" @click="isShowImagePicker = false">
														{{ $t('chat.chat_cancel') }}
													</view>
												</u-popup>
												<view class="u-m-l-30" @click="actChooseVideo"
													v-show="fileList.length == 0">
													<text class="icon icon-shipin"></text>
												</view>
												<!-- <view class="publish-handle_left--item">
									    			<lsj-upload
									    			ref="lsjUpload0"
									    			childId="upload1"
									    			:width="width"
									    			:height="height"
									    			:option="option"
									    			:size="size"
									    			:formats="formats"
									    			:debug="debug"
									    			:instantly="instantly"
									    			@change="onChange"
									    			@progress="onprogress"
									    			@uploadEnd="onuploadEnd"
									    			>
									    			<view class="icon icon-wenjianjiatianjia"></view>
									    			</lsj-upload>
									    		</view> -->
												<view class="u-m-l-30" style="margin-top:-10rpx"
													@click="$goPage('/note/friends', {}, true)">
													<text class="">@</text>
												</view>
											</view>
										</view>
										<view v-if="emojiShow" class="TUI-Emoji-area">
											<TUI-Emoji @enterEmoji="appendMessage"></TUI-Emoji>
										</view>
									</view>
								</u-popup>
								<view class="fixed-publish" @click="goPublish(3)">
									<u-image width="84rpx" height="84rpx" src="/static/images/issue.png" mode="">
									</u-image>
								</view>
							</view>
						</view>
						<view v-else>
							<view class="detail-repair_content"
								v-if="materials && JSON.parse(JSON.stringify(materials)).length > 0">
								<view class="detail-repair_item" v-for="(item, index) in materials">
									<view class="detail-repair_item--name u-flex">
										<view class="detail-repair_item--order_blue u-border">{{index + 1}}</view>
										<text>{{item.Content != '' ? item.Content : '-'}}</text>
									</view>
									<view class="u-flex mgb-10">
										<view class="detail-repair_item--child__label">{{$t('project.submit_data')}}：
										</view>
										<text
											class="detail-repair_item--child__value  u-flex-1">{{item.AddTimeText != '' ? item.AddTimeText : '-'}}</text>
									</view>
									<view class="u-flex mgb-10">
										<view class="detail-repair_item--child__label">{{$t('project.submit_person')}} ：
										</view>
										<text
											class="detail-repair_item--child__value  u-flex-1">{{ item.AddAccName != '' ? item.AddAccName : '-'}}</text>
									</view>
									<view class="u-flex">
										<view class="detail-repair_item--child__label">{{$t('project.status')}}：</view>
										<view class="detail-repair_item--child__value  u-flex-1">
											{{ item.StatText == '' ? '-' : $t('project.materials_stat')[item.Stat]}}
											<text v-if="item.Stat == 2 && item.DoneTimeText != ''" class="color-gray">
												({{item.DoneTimeText}})</text>
										</view>
									</view>
									<view class="u-flex mgt-10" v-if="item.Type != ''">
										<view class="detail-repair_item--child__label">{{$t('project.spare_type')}}：
										</view>
										<text class="detail-repair_item--child__value  u-flex-1">{{item.Type}}</text>
									</view>
									<view class="u-flex mgt-10" v-if="item.TypeText != ''">
										<view class="detail-repair_item--child__label">{{$t('project.spare_name')}}：
										</view>
										<text
											class="detail-repair_item--child__value  u-flex-1">{{item.TypeText}}</text>
									</view>
									<view class="detail-repair_item--footer u-border-top u-flex u-row-right"
										v-if="item.Stat == 1">
										<view>
											<u-button class="mgr-30" size="medium"
												v-if="item.AddAcc == $store.state.vuex_user.uid"
												:custom-style="{'padding':'0 40rpx'}" @click="delMaterial(item.Mid)">
												{{$t('project.btn_del')}}
											</u-button>
										</view>
										<view>
											<u-button size="medium" plain :custom-style="{'padding':'0 40rpx'}"
												@click="cfmMaterial(item.Mid)">
												{{$t('project.btn_completed')}}
											</u-button>
										</view>
									</view>
								</view>
								<view class="fixed-publish" @click="isAddMaterial = true">
									<u-image width="84rpx" height="84rpx" src="/static/images/add.png" mode="">
									</u-image>
								</view>
								<u-modal v-model="deleteMaterial" :show-cancel-button="true" :show-title="false"
									:cancelText="$t('project.think')" :confirmText="$t('project.btn_confirm')"
									:content="$t('project.confirm_del')" @confirm="actDeleteMaterial">
								</u-modal>
								<u-modal v-model="comfirmMaterial" :show-cancel-button="true" :show-title="false"
									:cancelText="$t('project.think')" :confirmText="$t('project.btn_confirm')"
									:content="$t('project.confirm_finish')" @confirm="actComfirmMaterial">
								</u-modal>
								<u-popup v-model="isAddMaterial" mode="bottom" :safe-area-inset-bottom="true">
									<view class="comment-box">
										<view class="inputStyle mgb-10">
											<input v-model="maForm.type" placeholder-style="color:#999"
												:placeholder="$t('project.spares_type_placeholder')"
												@input="commentInput" />
										</view>
										<view class="inputStyle">
											<textarea v-model="maForm.desc" placeholder-style="color:#999"
												:placeholder="$t('project.spares_desc_placeholder')"
												@input="commentInput" />
										</view>
										<button class="btnStyle" :disabled="isSend"
											@click="maSubmit">{{$t('project.btn_confirm')}}
										</button>
									</view>
								</u-popup>
								<u-loadmore :status="status" :icon-type="iconType" :load-text="loadText"
									margin-bottom="45" margin-top="45" color="#C1C0C0" />
							</view>
							<view class="empty-wrap" v-else>
								<u-empty :text="$t('project.empty_txt')" mode="list"></u-empty>
							</view>
						</view>
						<!-- 	<view class="empty-wrap" v-else>
			  								<u-empty :text="i18n.permis_txt" mode="list"></u100-empty>
			  							</view> -->
					</scroll-view>
				</swiper-item>
				<swiper-item class="detail-contnet_swiper--item">
					<scroll-view scroll-y class="detail-contnet_swiper--scroll" style="height: 100%"
						@scrolltolower="onreachBottom" @refresherrefresh="handleRefresher(5)" refresher-enabled="true"
						:refresher-triggered="isTriggered" v-if="ctrPermission == 1">
						<view class="detail-repair_content">
							<view class="detail-repair_item" v-for="(item, index) in materials">
								<view class="detail-repair_item--name u-flex">
									<view class="detail-repair_item--order_blue u-border">{{index + 1}}</view>
									<text>{{item.Content != '' ? item.Content : '-'}}</text>
								</view>
								<view class="u-flex mgb-10">
									<view class="detail-repair_item--child__label">{{$t('project.submit_data')}}：</view>
									<text
										class="detail-repair_item--child__value  u-flex-1">{{item.AddTimeText != '' ? item.AddTimeText : '-'}}</text>
								</view>
								<view class="u-flex mgb-10">
									<view class="detail-repair_item--child__label">{{$t('project.submit_person')}} ：
									</view>
									<text
										class="detail-repair_item--child__value  u-flex-1">{{ item.AddAccName != '' ? item.AddAccName : '-'}}</text>
								</view>
								<view class="u-flex">
									<view class="detail-repair_item--child__label">{{$t('project.status')}}：</view>
									<view class="detail-repair_item--child__value  u-flex-1">
										{{ item.StatText == '' ? '-' : $t('project.materials_stat.'+item.Stat)}}
										<text v-if="item.Stat == 2 && item.DoneTimeText != ''" class="color-gray">
											({{item.DoneTimeText}})</text>
									</view>
								</view>
								<view class="u-flex mgt-10" v-if="item.Type != ''">
									<view class="detail-repair_item--child__label">{{$t('project.spare_type')}}：</view>
									<text class="detail-repair_item--child__value  u-flex-1">{{item.Type}}</text>
								</view>
								<view class="u-flex mgt-10" v-if="item.TypeText != ''">
									<view class="detail-repair_item--child__label">{{$t('project.spare_name')}}：</view>
									<text class="detail-repair_
									item--child__value  u-flex-1">{{item.TypeText}}</text>
								</view>
								<view class="detail-repair_item--footer u-border-top u-flex u-row-right"
									v-if="item.Stat == 1">
									<view>
										<u-button size="medium" class="mgr-30"
											v-if="item.AddAcc == $store.state.vuex_user.uid"
											:custom-style="{'padding':'0 40rpx'}" @click="delMaterial(item.Mid)">
											{{$t('project.btn_del')}}
										</u-button>
									</view>
									<view>
										<u-button size="medium" plain :custom-style="{'padding':'0 40rpx'}"
											@click="cfmMaterial(item.Mid)">
											{{$t('project.btn_completed')}}
										</u-button>
									</view>

								</view>
							</view>
							<view class="fixed-publish" @click="isAddMaterial = true">
								<u-image width="84rpx" height="84rpx" src="/static/images/add.png" mode="">
								</u-image>
							</view>
							<u-modal v-model="deleteMaterial" :show-cancel-button="true" :show-title="false"
								:cancelText="$t('project.think')" :confirmText="$t('project.btn_confirm')"
								:content="$t('project.confirm_del')" @confirm="actDeleteMaterial">
							</u-modal>
							<u-modal v-model="comfirmMaterial" :show-cancel-button="true" :show-title="false"
								:cancelText="$t('project.think')" :confirmText="$t('project.btn_confirm')"
								:content="$t('project.confirm_finish')" @confirm="actComfirmMaterial">
							</u-modal>
							<u-popup v-model="isAddMaterial" mode="bottom" :safe-area-inset-bottom="true">
								<view class="comment-box">
									<view class="inputStyle mgb-10">
										<input v-model="maForm.type" placeholder-style="color:#999"
											placeholder="请输入备件类型" @input="commentInput" />
									</view>
									<view class="inputStyle">
										<textarea v-model="maForm.desc" placeholder-style="color:#999"
											placeholder="请输入备件描述" @input="commentInput" />
									</view>
									<button class="btnStyle" :disabled="isSend"
										@click="maSubmit">{{$t('project.btn_confirm')}}</button>

								</view>
							</u-popup>
							<u-loadmore :status="status" :icon-type="iconType" :load-text="loadText" margin-bottom="45"
								margin-top="45" color="#C1C0C0" />
						</view>
						<view class="empty-wrap" v-if="JSON.parse(JSON.stringify(materials)).length == 0">
							<u-empty :text="$t('project.empty_txt')" mode="list"></u-empty>
						</view>
					</scroll-view>
					<chart :project="project" v-else></chart>
				</swiper-item>
				<swiper-item>
					<chart :project="project" v-if="ctrPermission == 1"></chart>
				</swiper-item>
			</swiper>
		</view>
	</view>
</template>

<script>
	import TUIEmoji from "@/components/tui-chat/message-elements/emoji/index";
	import {
		emojiName,
		emojiUrl,
		emojiMap
	} from "@/components/base/emojiMap";
	import chart from "@/pages/repair/chart/index.vue";
	import articleItem from "@/components/article-item/index.vue";
	import replyImagesItem from '@/components/reply-images-item/index.vue';
	import imagesItem from '@/components/images-item/index.vue';
	import previewPdf from '@/components/preview-pdf/index.vue';
	import clientConfirmBox from '@/pages/client/repair/confirm/index.vue'
	import groupBox from '@/pages/note/group/index';
	import {
		sendTraceData
	} from '@/utils//trace';
	import {
		getPageRandom,
		genSignNonce
	} from '@/utils/util.js'
	//import pageMixin from '@/utils/pageMixin';
	import homeStorage from "@/utils/storage.js";
	export default {
		//mixins: [pageMixin],
		data() {
			return {
				historySearchDetail: false,
				BBShistorySearchDetail: false,
				project: '',
				tabnew: '',
				confirm: '',
				iid: 0,
				treeIid: 0,
				projectName: '',
				tabs: [],
				// 因为内部的滑动机制限制，请将tabs组件和swiper组件的current用不同变量赋值
				current: 0, // tabs组件的current值，表示当前活动的tab选项
				swiperCurrent: 0, // swiper组件的current值，表示当前那个swiper-item是活动的

				loadStatus: 'loading',
				status: 'nomore',
				iconType: 'flower',
				loadText: {
					loadmore: this.$t('project.pull_up'),
					loading: this.$t('project.loading'),
					nomore: this.$t('project.note_no_more'),
				},

				emojiShow: false,
				isCommonTerms: false,
				words: '',
				commonWordsList: [],
				isComment: false,
				isTransfer: false,
				isSend: true,
				isPlay: false,
				autoplay: false,
				videoContext: null,
				deleteReplyId: 0,
				deleteReplyTopic: 0,
				deleteReplyShow: false,
				pager: {
					idx: 0,
					size: 1000
				},
				praise: false,
				topics: [],
				projectInfo: {},
				keyword: '', //项目内容搜索关键词
				searchHistoryList: [],
				bbscontent: '', //项目动态搜索关键词
				BBSsearchHistoryList: [],
				projectItemList: [],
				confirmList: [],
				ctrPermission: 0,
				prcPermission: 0,
				contract: {},
				files: [],
				contractReply: [],
				isCheck: false,
				isNext: false,
				isCheckPopup: false,
				checked: false,
				checkLists: [],
				materials: [],
				arr: [],
				confirmArr: [],
				confirmFooterDisplay: false,
				allChecked: false,
				checkUid: '',
				form: {
					tid: '',
					comment: '',
				},
				menu: {
					MenuList: []
				},
				deleteShow: false,
				showRemark: false,
				rmkcontent: '',
				btnWidth: 80,
				tabchangenow: 0,
				__prandom: '',
				__currentPage: '',
				__recordData: {},
				__loadTime: 0,
				prtnow: 0,
				pagedict: [],

				showExport: false,
				showExportEmail: false,
				exportContent: '',
				exportEmailNew: '',
				exportEmail: '',
				emaillist: [],

				xScale: 0,
				groupList: [],

				deleteMaterial: false,
				comfirmMaterial: false,
				isAddMaterial: false,
				maForm: [],

				videoIdx: 0,
				vodSrc: '',

				checkGroupId: 0,
				checkTopic: {},
				src: "", //临时视频存放
				showUploadList: false,
				action: '',
				formData: {},
				lists: [],
				fileList: [],
				thumbnailList: [],
				previewList: [],
				VodSrc: "", //线上视频地址
				VodImg: "",
				friends: [],
				empty_text: this.$t('project.is_loading'),

				isVertical: false,
				touchStartX: 0,
				touchStartY: 0,
				discount: 0,

				topicIdx: 1,
				topicSize: 10,
				topicSearchIdx: 1,
				topicSearchSize: 10,
				stopseach: 0,
				request: false,
				commentIndex: 0, //当前评论的是第几个帖子
				cursorStart: 0, //输入框光标位置
				option: {
					// 上传服务器地址，此地址需要替换为你的接口地址
					// url: 'http://hl.j56.com/dropbox/document/upload',
					url: 'https://tapi.i-dock.net/mgr/tool/upload/image',
					// 上传附件的key
					name: 'file',
					// 根据你接口需求自定义请求头,默认不要写content-type,让浏览器自适配
					header: {
						// 示例参数可删除
						'Authorization': 'bearer eyJhbGciOiJSUzI1NiIsI',
						'uid': '27682',
						'client': 'app',
						'accountid': 'DP',
					},
					// 根据你接口需求自定义body参数
					formData: {
						// 'orderId': 1000
						'catalog': 'cms'
					}
				},
				// 选择文件后是否立即自动上传，true=选择后立即上传
				instantly: true,
				// 必传宽高且宽高应与slot宽高保持一致
				width: '60rpx',
				height: '60rpx',
				// 限制允许上传的格式，空串=不限制，默认为空
				formats: '',
				// 文件上传大小限制
				size: 30,
				// 文件回显列表
				files: new Map(),
				// 微信小程序Map对象for循环不显示，所以转成普通数组，不要问为什么，我也不知道
				wxFiles: [],
				// 是否打印日志
				debug: true,
				tabIndex: 0,
				isTriggered: false, //是否开启下拉刷新
				scrollIndex: 0,
				isShowImagePicker: false, //显示“拍摄”和“相册”弹出框
			}
		},
		onLoad(options) {
			console.log(this.$t('project.tabs'))
			const lang = uni.getStorageSync('lang')
			if (lang == '中文') {
				this.btnWidth = 80
			}
			if (lang == 'English') {
				this.btnWidth = 120
			}
			if (lang == 'русский') {
				this.btnWidth = 150
			}
			this.current = this.swiperCurrent = parseInt(options.tab) || 0;
			this.project = options.project;
			this.discount = options.discount || 0;
			this.iid = options.iid || 0;
			this.maidianstartfun(0)
			this.getPermissionContract();
			this.init();
		},
		onShow() {
			console.log(this.isComment)
			this.searchHistoryList = JSON.parse(uni.getStorageSync('searchList') || '[]');
			this.BBSsearchHistoryList = JSON.parse(uni.getStorageSync('searchBbsList') || '[]');

			uni.setNavigationBarTitle({
				title: this.$t('project.repair_detail')
			});
			this.getPermissionContract();
			//	this.topicIdx = 1

			let pages = getCurrentPages();
			let currPage = pages[pages.length - 1]; // 当前页的实例
			console.log(currPage.$vm)
			if (currPage.$vm.value) {
				this.tabsChange(currPage.$vm.value)
			} else {
				if (this.current == 0) {
					//发布动态后返回该页面刷新数据
					this.topicIdx = 1
					this.topics = []
				}
				this.tabsChange(this.current || 0)
			}
			setTimeout(() => {
				this.getShipName()
			})
		},

		onUnload() {
			// console.log("-------页面销毁------------")
			var index = this.swiperCurrent;
			this.maidianleavefun()
			console.log("-------页面销毁------------", index)
			this.maidianendfunNoto(index)
		}, //监听页面销毁

		components: {
			replyImagesItem,
			articleItem,
			imagesItem,
			previewPdf,
			TUIEmoji,
			chart,
			clientConfirmBox,
			groupBox
		},
		watch: {
			current(newval) {
				this.tabsChange(newval)
			}
		},
		computed: {
			i18n() {
				return this.$t('project')
			},
			mine() {
				return this.$t('mine')
			},
		},
		methods: {
			openList() {
				// console.log("----openlist---:");
				this.historySearchDetail = true;
				this.BBShistorySearchDetail = true;
				// this.searchHistoryList = JSON.parse(uni.getStorageSync('searchList') || '[]')
				// if(this.searchHistoryList>=0){
				// 	this.historySearchDetail = true
				// }
			},
			// // 清空历史搜素
			clearHistory() {
				uni.showToast({
					title: '已清空'
				});
				uni.removeStorage({
					key: 'searchList'
				});

				this.searchHistoryList = [];
			},
			itemSearch(item) {
				this.keyword = item
				// this.keySearch(item)
				this.actSearch(item)
			},
			// // 清空历史搜素
			BBSclearHistory() {
				uni.showToast({
					title: '已清空'
				});
				uni.removeStorage({
					key: 'searchBbsList'
				});

				this.searchHistoryList = [];
			},
			BBSitemSearch(item) {
				this.bbscontent = item
				// this.keySearch(item)
				this.bbsSearch(item)
			},
			//评论输入框失去焦点的时候触发以此来保存光标位置
			textblur(e) {
				this.cursorStart = e.detail.cursor
			},
			// // 搜索的事件
			// keySearch(keyword) {
			// 	if (keyword == '') {
			// 		uni.showModal({
			// 			title: '搜索内容不能为空'
			// 		});
			// 	} else {
			// 		this.historySearchDetail = false
			// 		this.tabPageDetail = true
			// 		if (this.searchHistoryList.includes(keyword)) {
			// 			let i = this.searchHistoryList.indexOf(keyword);
			// 			this.searchHistoryList.splice(i, 1);
			// 			this.searchHistoryList.unshift(keyword)
			// 		} else {
			// 			this.searchHistoryList.unshift(keyword)
			// 			uni.setStorageSync('searchList', JSON.stringify(this.searchHistoryList))
			// 		}
			// 	}
			// },
			// // 搜索的清空
			// clearSearch() {
			// 	this.historySearchDetail = true
			// 	this.tabPageDetail = false
			// },
			// change(index) {
			// 	this.current = index
			// },
			init() {
				this.action = this.$store.state.fileUploadUrl;
				this.formData = {
					catalog: 'cms'
				};
			},
			showImagePicker() {
				this.isShowImagePicker = true
			},
			chooseImage(type) {
				this.isShowImagePicker = false
				//判断是拍摄还是从相册中选择
				if (type == 'camera') {
					//拍摄
					uni.chooseImage({
						sourceType: ['camera'],
						success: (res) => {
							// 上传图片
							uni.uploadFile({
								url: this.action, // 自己文件上传的路径
								method: "POST",
								filePath: res.tempFilePaths[0],
								name: 'file',
								formData: {
									catalog: 'cms'
								},
								success: res1 => {
									if (res1.statusCode == 200) {
										const file = JSON.parse(res1.data).data
										//给所选图片赋值
										this.fileList.push({
											url: file.domain + file.filepath,
											filepath: file.filepath
										})
										console.log(file.domain + file.filepath)
									}
								}
							})
						},
					})
				} else {
					uni.chooseImage({
						sourceType: ['album'],
						success: res => {
							res.tempFilePaths.forEach((item, index) => {
								uni.uploadFile({
									url: this.action, // 自己文件上传的路径
									method: "POST",
									filePath: item,
									name: 'file',
									formData: {
										catalog: 'cms'
									},
									success: res1 => {
										if (res1.statusCode == 200) {
											const file = JSON.parse(res1.data).data
											//给所选图片赋值
											this.fileList.push({
												url: file.domain + file.filepath,
												filepath: file.filepath
											})
											console.log(file.domain + file.filepath)
										}
									}
								})
							})
						}
					})
				}
			},
			actPreviewImage(e) {
				let index = e.currentTarget.dataset.index;
				let urls = [];

				this.fileList.forEach(function(item) {
					urls = urls.concat(item.url);
				});

				// 预览图片
				uni.previewImage({
					urls: urls,
					current: index,
					indicator: 'default',
					longPressActions: {
						itemList: ['发送给朋友', '保存图片', '收藏'],
						success: function(data) {
							console.log('选中了第' + (data.tapIndex + 1) + '个按钮,第' + (data.index + 1) + '张图片');
						},
						fail: function(err) {
							console.log(err.errMsg);
						}
					}
				});
			},
			actPreviewImage2(smallImgJson, bigImgJson, index) {

				let imgJson = []
				if (bigImgJson && bigImgJson.length > 0) {
					imgJson = bigImgJson;
				} else {
					imgJson = smallImgJson
				}
				let urls = [];
				imgJson.forEach(function(item) {
					urls = urls.concat(item.Src);
				});
				// 预览图片
				uni.previewImage({
					urls: urls,
					current: index,
					indicator: 'default',
					longPressActions: {
						itemList: ['保存图片'],
						success: function(data) {
							uni.showLoading({
								title: "保存中..."
							})
							setTimeout(function() {
								uni.hideLoading()
							}, 6000);
							uni.downloadFile({
								url: urls[data.index], //网络路径，下载下来
								success: (data) => {
									if (data.statusCode === 200) {
										uni.saveImageToPhotosAlbum({
											filePath: data.tempFilePath, //下载后的临时路径
											success: data => { //下载完成后在相册里压根找不到
												uni.hideLoading()
												uni.showToast({
													title: "保存成功！"
												})
											}
										})
									}
								}
							});
						},
						fail: function(err) {
							console.log(err.errMsg);
						}
					}
				});
			},
			deleteItem(index) {
				this.fileList.splice(index, 1)
			},
			actChooseVideo() {
				let that = this;
				if (that.src != '') {
					uni.showToast({
						title: this.$t('home.most_one_video'),
						icon: 'none'
					});
					return;
				}

				// 上传视频
				uni.chooseVideo({
					maxDuration: 60,
					count: 1,
					camera: 'back',
					compressed: true,
					sourceType: ['camera', 'album'],
					success: (res) => {
						uni.showLoading();
						if (this.compress && (res.size / 10240 > 1025)) {
							this.videoCompress(res.tempFilePath)
						} else {
							this.videoUpload(res.tempFilePath)
						}
						// uni.uploadFile({
						// 	url: that.action, //上传接口地址
						// 	filePath: res.tempFilePath,
						// 	name: 'file',
						// 	formData:{
						// 		catalog:'cms'
						// 	},
						//  success: (uploadFileRes) => {
						// 	 var result = JSON.parse(uploadFileRes.data);
						// 	 that.VodSrc = result.data.filepath;
						// 	 that.src = res.tempFilePath;
						// 	 var arr = that.VodSrc.split('.');
						// 	 				 that.VodImg = result.data.domain+arr[0]+'_0.jpg';

						// 	 				 // 按实际上传的视频回调地址显示
						// 	 				 // that.src = result.data.domain+result.data.filepath;
						// 	 				 uni.hideLoading();
						// 	 			},
						// 	 			complete: res => {
						// 	 				uni.hideLoading();
						// 				}
						// 		});
					}
				})
			},
			videoCompress(tempFilePath) {
				uni.showLoading({
					title: '压缩中...'
				});
				var that = this;
				uni.compressVideo({
					src: tempFilePath,
					quality: 'low', //'low':低，'medium':中，'high':高
					success: function(res) {
						that.videoUpload(res.tempFilePath);
					},
					fail: function(err) {
						uni.showToast({
							title: '视频压缩失败',
							icon: 'none'
						}, 2000)
					}
				})
			},
			videoUpload(tempFilePath) {
				uni.showLoading({
					title: '上传中...'
				});
				const uploadTask = uni.uploadFile({
					url: this.action, // 自己文件上传的路径
					method: "POST",
					filePath: tempFilePath,
					name: 'file',
					formData: {
						catalog: 'cms'
					},
					success: (res) => {
						// 	this.videoContent = JSON.parse(res.data).data.filepath
						// 	// let resMessage = JSON.parse(res.data).message;
						// console.log(JSON.parse(res.data).data.filepath)
						// 	if(JSON.parse(res.data).data.filepath){
						// 		// uni.hideLoading();
						// 		uni.showToast({
						// 			title: '上传成功',
						// 			icon: 'none'
						// 		})
						// 	}

						var result = JSON.parse(res.data);
						this.VodSrc = result.data.filepath;
						this.src = res.tempFilePath;
						var arr = this.VodSrc.split('.');
						this.VodImg = result.data.domain + arr[0] + '_0.jpg';
						this.isSend = false
						uni.hideLoading();
					},
					fail: (err) => {
						console.log(err);
						uni.hideLoading();
						uni.showToast({
							title: err,
							icon: 'none'
						})
						reject(err);
					},
					complete: () => {}
				})
				uploadTask.onProgressUpdate((res) => {
					uni.showLoading({
						title: '上传中' + res.progress + '%'
					});
					if (res.progress == 100) {
						uni.hideLoading();
					}
				});
			},
			delectVideo: function() {
				uni.showModal({
					title: this.$t('home.tip'),
					content: this.$t('home.del_video'),
					success: (res) => {
						if (res.confirm) {
							this.src = '';
							this.VodSrc = '';
							this.VodImg = '';
						}
					}
				})
			},
			getShipName() {
				this.$http.get('/mgr/biz/project/name', {
					pid: this.project
				}).then(res => {
					uni.setNavigationBarTitle({
						title: res.ShipName
					})
				})
			},
			maidianstartfun(index) {
				let pages = getCurrentPages();
				let loadTime = new Date().getTime();
				let route = pages[pages.length - 1].route || '';
				let options = pages[pages.length - 1].$page.options;
				let recordData = this.__recordData;
				this.__loadTime = loadTime;
				this.__currentPage = '/' + route + index;
				recordData = Object.assign({}, recordData, options || {});
				let prandom = getPageRandom([
					genSignNonce(),
					this.__currentPage,
					this.__loadTime
				]);
				sendTraceData({
					url: this.__currentPage,
					lid: prandom,
					act: 'start',
					time: loadTime,
					args: JSON.stringify(recordData),
				});

			},
			uploadSuccess: function() {
				this.isSend = false
			},
			maidianendfun(index) {
				let pages = getCurrentPages();
				let route = pages[pages.length - 1].route || '';
				let options = pages[pages.length - 1].$page.options;
				let recordData = this.__recordData;
				this.__currentPage = '/' + route + index;
				recordData = Object.assign({}, recordData, options || {});
				let prandom = getPageRandom([
					genSignNonce(),
					this.__currentPage,
					this.__loadTime
				]);

				if (prandom != '') {
					let leaveTime = new Date().getTime();
					sendTraceData({
						lid: prandom,
						act: 'end',
						time: leaveTime,
						args: JSON.stringify(recordData),
					});
				}

				this.maidianstartfun(index);
			},
			maidianendfunNoto(index) {
				let pages = getCurrentPages();
				let route = pages[pages.length - 1].route || '';
				let options = pages[pages.length - 1].$page.options;
				let recordData = this.__recordData;
				this.__currentPage = '/' + route + index;
				recordData = Object.assign({}, recordData, options || {});
				let prandom = getPageRandom([
					genSignNonce(),
					this.__currentPage,
					this.__loadTime
				]);

				console.log("-------------------", prandom)
				if (prandom != '') {
					let leaveTime = new Date().getTime();
					sendTraceData({
						lid: prandom,
						act: 'end',
						time: leaveTime,
						args: JSON.stringify(recordData),
					});
				}
			},
			maidianleavefun(index) {
				console.log("start   结束埋点的地方", index, this.lastPrandom)
				let pages = getCurrentPages();
				let route = pages[pages.length - 1].route || '';
				let options = pages[pages.length - 1].$page.options;
				let recordData = this.__recordData;
				this.__currentPage = '/' + route + index;
				recordData = Object.assign({}, recordData, options || {});
				let leaveTime = new Date().getTime();
				sendTraceData({
					lid: this.lastPrandom,
					act: 'leave',
					time: leaveTime,
					args: JSON.stringify(recordData),
				});
			},
			// tabs通知swiper切换
			tabsChange(index) {
				// this.current = index
				console.log("初始化了tabsChage-------", index)
				// if (this.tabchangenow != 0) {
				// 	this.maidianleavefun();
				// 	this.maidianendfun();
				// 	this.__prandom = '';
				// 	this.__currentPage = '';
				// 	this.__recordData = {};
				// 	this.__loadTime = 0;
				// 	this.tabchangenow = index + 1;
				// };
				// this.maidianleavefun()
				// this.maidianendfun(index);
				this.scrollIndex = index
				this.isTouchSwiper = false
				switch (index) {

					case 0:
						if (this.lastIndex != index) {
							if (this.lastIndex == 2 || this.lastIndex == 7) {
								this.maidianstartfun(index);
							} else {
								this.maidianleavefun(this.lastIndex)
								this.maidianstartfun(index);
							}
						}
						this.lastIndex = index
						this.BBShistorySearchDetail = false
						this.getTopicList();
						break;
					case 1:
						if (this.lastIndex != 7) {
							this.maidianleavefun(this.lastIndex)
						}
						this.lastIndex = index
						this.getPermissionPrice();
						this.getGroupList();
						break;
					case 2:
						if (this.lastIndex == 2 || this.lastIndex == 7) {
							this.maidianstartfun(index);
						} else {
							this.maidianleavefun(this.lastIndex)
							this.maidianstartfun(index);
						}
						this.lastIndex = index
						this.historySearchDetail = false
						this.getPermissionPrice();
						this.getItemList(this.iid);
						this.getMenu();
						break;
					case 3:
						if (this.lastIndex == 2 || this.lastIndex == 7) {
							this.maidianstartfun(index);
						} else {
							this.maidianleavefun(this.lastIndex)
							this.maidianstartfun(index);
						}
						this.lastIndex = index
						// this.maidianstartfun(3)
						this.getConfirmList();
						break;
					case 4:
						// this.maidianstartfun(4)
						if (this.lastIndex == 2 || this.lastIndex == 7) {
							this.maidianstartfun(index);
						} else {
							this.maidianleavefun(this.lastIndex)
							this.maidianstartfun(index);
						}
						this.lastIndex = index
						if (this.ctrPermission) {

							this.getContractInfo();
							this.getContractReply();
						} else {
							this.getMaterialList();
						}
						break;
					case 5:
						if (this.ctrPermission) {
							this.getMaterialList();
							if (this.lastIndex == 2 || this.lastIndex == 7) {
								this.maidianstartfun(index);
							} else {
								this.maidianleavefun(this.lastIndex)
								this.maidianstartfun(index);
							}
							this.lastIndex = index
						} else {
							if (this.lastIndex == 2 || this.lastIndex == 7) {
								this.maidianstartfun(index);
							} else {
								this.maidianleavefun(this.lastIndex)
								this.maidianstartfun(index);
							}
							this.lastIndex = index
						}
						// this.maidianstartfun(4)
						break;
					case 6:
						// this.maidianstartfun(5)
						if (this.lastIndex == 2 || this.lastIndex == 7) {
							this.maidianstartfun(index);
						} else {
							this.maidianleavefun(this.lastIndex)
							this.maidianstartfun(index);
						}
						this.lastIndex = index
						break;
					case 7:
						// this.maidianstartfun(5)
						if (this.lastIndex != 2) {
							this.maidianleavefun(this.lastIndex)
						}
						this.lastIndex = index
						break;
				}
				if (index != this.swiperCurrent) {
					this.isComment = false;
					//this.isSend = true;
				} else {
					//暂时没想到这句话的功能,先屏蔽了
					// uni.$on('checkItem', (item) => {
					// 	console.log(item)
					// 	this.isComment = true
					// 	this.isSend = false
					// })
				}
				this.swiperCurrent = index;
				console.log('this.swiperCurrent', this.swiperCurrent)
				//this.isComment = false;
				//this.isSend = true;
			},
			tabsChange1(index) {
				this.swiperCurrent = index;
			},
			goToProjectOrConfirm(projectone, iidone, isConfirm) {
				if (isConfirm == 0) {
					this.$goPage('/repair/project', {
						project: projectone,
						iid: iidone
					})
					// uni.navigateTo({
					// 	url: '/pages/repair/project/index?project=' + project + '&iid=' + iid
					// });
				} else {
					if (isConfirm == 2 || isConfirm == 4 || isConfirm == 5 || isConfirm == 8) {
						this.tabnew = 1;
					} else {
						this.tabnew = 0;
					}
					this.confirm = isConfirm;
					this.tabsChange(3)
					//this.$goPage('/staff/bench/confirm',{project: projectone, iid: iidone, tab: tabnew, tabindex:isConfirm})
					// uni.navigateTo({
					// 	url: '/pages/staff/bench/confirm/index?project=' + projectone + '&iid=' + iidone +'&tab='+tabnew+'&tabindex='+isConfirm
					// });
				}
			},
			getPermissionPrice() {
				this.$http.get('/client/biz/project/item/permission/price', {
					project: this.project
				}).then(res => {
					this.prcPermission = res;
				});
			},
			getPermissionContract() {
				let that = this;
				this.$http.get('/client/biz/project/item/permission/contract', {
					project: that.project
				}).then(res => {
					this.ctrPermission = res;
					console.log(res)
					//判断用户是否有合同权限
					if (this.ctrPermission == 1) {
						//有合同权限
						this.tabs = [{
								name: this.$t('project.tabs[0].name')
							},
							{
								name: this.$t('project.tabs[1].name')
							},
							{
								name: this.$t('project.tabs[2].name')
							},
							{
								name: this.$t('project.tabs[3].name')
							},
							{
								name: this.$t('project.tabs[4].name')
							},
							{
								name: this.$t('project.tabs[5].name')
							},
							{
								name: this.$t('project.tabs[6].name')
							},
						]
					} else {
						this.tabs = [{
								name: this.$t('project.tabs_contract_permis[0].name')
							},
							{
								name: this.$t('project.tabs_contract_permis[1].name')
							},
							{
								name: this.$t('project.tabs_contract_permis[2].name')
							},
							{
								name: this.$t('project.tabs_contract_permis[3].name')
							},
							{
								name: this.$t('project.tabs_contract_permis[4].name')
							},
							{
								name: this.$t('project.tabs_contract_permis[5].name')
							},
						]
					}
				});
			},
			// swiper-item左右移动，通知tabs的滑块跟随移动
			transition(e) {
				let dx = e.detail.dx;
				this.$refs.uTabs.setDx(dx);
			},
			// 由于swiper的内部机制问题，快速切换swiper不会触发dx的连续变化，需要在结束时重置状态
			// swiper滑动结束，分别设置tabs和swiper的状态
			animationfinish(e) {
				let current = e.detail.current;
				console.log("出发了");
				this.$refs.uTabs.setFinishCurrent(current);
				this.swiperCurrent = current;
				this.current = current;
			},
			// scroll-view到底部加载更多
			// onrea++ ++ ++ + HGGGGGGGUUU
			// async getTopicList() {
			// 	this.a = this.a + 1
			// 	console.warn("----" + this.stopseach);
			// 	if (this.stopseach == 0) {

			// 		if (this.bbscontent != '') {
			// 			this.getTopicListSeach();
			// 			return;
			// 		}

			// 		if (this.request) {
			// 			return;
			// 		}
			// 		this.request = true;

			// 		let that = this;

			// 		//获取缓存数据
			// 		let lastTopicTime = 0;
			// 		if (this.topics.length) {
			// 			lastTopicTime = this.topics[this.topics.length - 1].AddTime;
			// 		}
			// 		let options = {
			// 			page: this.topicIdx <= 1 ? 0 : this.topicIdx,
			// 			lastTopicTime: lastTopicTime
			// 		};
			// 		let data = await this.getLocalCacheList(options);
			// 		if (data.length) {

			// 			let topicList = [];

			// 			// 检查是否有最新的社区内容
			// 			let maxTopicTime = 0;
			// 			if (this.topics.length) {
			// 				maxTopicTime = this.topics[0].AddTime;
			// 			}

			// 			//获取当前网络状况
			// 			let networkType = null;
			// 			await uni.getNetworkType({
			// 				success: function(res) {
			// 					networkType = res.networkType
			// 				},
			// 			});

			// 			if (networkType == 'none') {
			// 				this.topicIdx = data.length < this.topicSize ? this.topicIdx : this.topicIdx +
			// 					1;
			// 				this.loadStatus = data.length == 0 ? 'nomore' : 'loading';
			// 				this.request = false;
			// 			}

			// 			if (networkType != null && networkType != 'none') {
			// 				await this.$http.get('/bbs/topic/pager/data', {
			// 					type: 2,
			// 					pid: this.project,
			// 					reply: 1,
			// 					idx: 0,
			// 					size: this.topicSize,
			// 					max_topic_time: maxTopicTime,
			// 				}).then(res => {
			// 					topicList = res;

			// 					//检查社区数据是否最新
			// 					var oldMessageTime = 0;
			// 					if (this.topics.length) {
			// 						oldMessageTime = this.topics[0].AddTime || 0;
			// 					} else {
			// 						oldMessageTime = data[0].AddTime || 0;
			// 					}
			// 					topicList = topicList.filter(item => item.AddTime > oldMessageTime)

			// 					if (topicList.length) {

			// 						//本地缓存
			// 						this.saveLocalCacheTopic(topicList, false);

			// 						data = [
			// 							...topicList,
			// 							...data,
			// 						];
			// 					}

			// 					this.topicIdx = topicList.length < this.topicSize ? this.topicIdx : this.topicIdx +
			// 						1;
			// 					this.loadStatus = data.length == 0 ? 'nomore' : 'loading';
			// 					this.request = false;
			// 				}).catch(err => {
			// 					this.request = false;
			// 				});

			// 			}

			// 			if (this.topics.length) {
			// 				this.topics = [
			// 					...this.topics,
			// 					...data,
			// 				];
			// 			} else {
			// 				this.topics = data;
			// 			}
			// 		} else {

			// 			var lastTime = 0;
			// 			if (this.topics.length) {
			// 				lastTime = this.topics[this.topics.length - 1].AddTime;
			// 				this.topicIdx = 0;
			// 			}

			// 			this.$http.get('/bbs/topic/pager/data', {
			// 				type: 2,
			// 				pid: this.project,
			// 				reply: 1,
			// 				idx: this.topicIdx,
			// 				size: this.topicSize,
			// 				content: this.bbscontent,
			// 				last_topic_time: lastTime,
			// 			}).then(res => {

			// 				if (this.topics.length) {
			// 					this.topics = [...this.topics, ...res];
			// 				} else {
			// 					this.topics = res;
			// 				}

			// 				//本地缓存
			// 				this.saveLocalCacheTopic(res);

			// 				// if (res.length < this.topicSize) {
			// 				// 	this.stopseach = 1;
			// 				// }
			// 				this.topicIdx = res.length < this.topicSize ? this.topicIdx : this.topicIdx + 1;
			// 				this.loadStatus = res.length < this.topicSize ? 'nomore' : 'loading';
			// 				this.request = false;
			// 				if (res.length == 0) {
			// 					this.empty_text = this.$t('project.no_stat')
			// 				}
			// 			}).catch(err => {
			// 				this.request = false;
			// 			});
			// 		}

			// 	} else {
			// 		this.empty_text = this.$t('project.no_stat')
			// 	}
			// },
			// async getLocalCacheList(options) {
			// 	let data = await this.getStorageTopic(options);
			// 	return data;
			// },
			// async getStorageTopic(param) {
			// 	let res = await homeStorage.getData({
			// 		key: 'client_project_topic_' + this.project,
			// 		page: param.page || 0,
			// 		sequence: param.lastTopicTime,
			// 		isBefore: true,
			// 	});
			// 	return res;
			// },
			// async saveLocalCacheTopic(data, isBefore = false) {
			// 	homeStorage.insert([...data], isBefore, 'client_project_topic_' + this.project)
			// },
			// async clearLocalCacheTopic() {
			// 	homeStorage.delete('client_project_topic_' + this.project);
			// },
			// //获取刷新数据的LIST，0-x
			// async getTopicListNew() {
			// 	if (this.stopseach == 0) {

			// 		await this.clearLocalCacheTopic();

			// 		this.$http.get('/bbs/topic/pager/data', {
			// 			type: 2,
			// 			pid: this.project,
			// 			reply: 1,
			// 			idx: 0,
			// 			size: this.topicSize * this.topicIdx,
			// 			content: this.bbscontent
			// 		}).then(res => {
			// 			this.topics = res;

			// 			//加入本地缓存
			// 			// this.saveLocalCacheTopic(res);

			// 			if (res.length < this.topicSize) {
			// 				this.stopseach = 1;
			// 			}
			// 			this.topicIdx = res.length < this.topicSize ? this.topicIdx : this.topicIdx + 1;
			// 			this.loadStatus = res.length < this.topicSize ? 'nomore' : 'loading';
			// 			if (res.length == 0) {
			// 				this.empty_text = '暂无动态'
			// 			}
			// 		})
			// 	} else {
			// 		this.empty_text = '暂无动态'
			// 	}
			// },
			// getTopicListSeach() {
			// 	console.log(" 进来拉。。。。。。。。。。。", this.stopseach);
			// 	if (this.stopseach == 0) {
			// 		console.log(" 进来拉。。。。。。。。。。。", this.topicSearchIdx);
			// 		console.log(" 进来拉。。。。。。。。。。。", this.topicSearchSize);
			// 		this.$http.get('/bbs/topic/pager/data', {
			// 			type: 2,
			// 			pid: this.project,
			// 			reply: 1,
			// 			idx: this.topicSearchIdx,
			// 			size: this.topicSearchSize,
			// 			content: this.bbscontent
			// 		}).then(res => {
			// 			console.log("res", res);
			// 			if (this.topicSearchIdx <= 1) {
			// 				this.topics = res;
			// 			} else {
			// 				this.topics = [...this.topics, ...res];
			// 			}
			// 			if (res.length < this.topicSearchSize) {
			// 				this.stopseach = 1;
			// 			}

			// 			this.topicSearchIdx = res.length < this.topicSearchSize ? this.topicSearchIdx : this
			// 				.topicSearchIdx + 1;
			// 			this.loadStatus = res.length < this.topicSearchSize ? 'nomore' : 'loading';
			// 			if (res.length == 0) {
			// 				this.empty_text = this.$t('project.no_stat')
			// 			}
			// 		});
			// 	} else {
			// 		this.empty_text = this.$t('project.no_stat')
			// 	}
			// },

			getTopicList() {
				this.a = this.a + 1
				console.warn("----" + this.stopseach);
				if (this.stopseach == 0) {
					this.$http.get('/bbs/topic/pager/data', {
						type: 2,
						pid: this.project,
						reply: 1,
						idx: this.topicIdx,
						size: this.topicSize,
						content: this.bbscontent
					}).then(res => {
						console.log('this.topicIdx---------------------------------------------------------', this
							.topicIdx)
						console.log('res-------------------------------------------------------------------', res)
						if (this.topicIdx <= 1) {
							this.topics = res;
						} else {
							this.topics = [...this.topics, ...res];
						}
						if (res.length < this.topicSize) {
							this.stopseach = 1;
						}
						this.topicIdx = res.length < this.topicSize ? this.topicIdx : this.topicIdx + 1;
						this.loadStatus = res.length < this.topicSize ? 'nomore' : 'loading';
						if (res.length == 0) {
							this.empty_text = this.$t('project.no_stat')
							console.log()
						}
						console.log(this.topics)
					});
				} else {
					this.empty_text = this.$t('project.no_stat')
				}
			},
			//获取刷新数据的LIST，0-x
			getTopicListNew() {
				if (this.stopseach == 0) {
					this.$http.get('/bbs/topic/pager/data', {
						type: 2,
						pid: this.project,
						reply: 1,
						idx: 0,
						size: this.topicSize * this.topicIdx,
						content: this.bbscontent
					}).then(res => {
						this.topics = res;
						if (res.length < this.topicSize) {
							this.stopseach = 1;
						}
						this.topicIdx = res.length < this.topicSize ? this.topicIdx : this.topicIdx + 1;
						this.loadStatus = res.length < this.topicSize ? 'nomore' : 'loading';
						if (res.length == 0) {
							this.empty_text = '暂无动态'
						}
					})
				} else {
					this.empty_text = '暂无动态'
				}
			},
			getTopicListSeach() {
				this.$http.get('/bbs/topic/pager/data', {
					type: 2,
					pid: this.project,
					reply: 1,
					idx: 1,
					size: 10,
					content: this.bbscontent
				}).then(res => {
					this.topics = res;
					// if (this.topicIdx <= 1) {
					// 	this.topics = res;
					// } else {
					// 	this.topics = [...this.topics, ...res];
					// }
					// this.topicIdx = res.length < this.topicSize ? this.topicIdx : this.topicIdx + 1;
					// this.loadStatus = res.length < this.topicSize ? 'nomore' : 'loading';
					// if (res.length == 0) {
					// 	this.empty_text = '暂无动态'
					// }
				})
			},
			getCommonWordsList() {
				this.$http.get('/cms/info/list', {
					cid: 311
				}).then(res => {
					this.commonWordsList = res;
				});
			},
			getGroupList() {
				this.$http.get('/mgr/user/group/list/data', {
					pid: this.project
				}).then(res => {
					this.groupList = res;
				});
			},
			getMenu(prt) {
				this.$http.get('/client/biz/project/item/menu', {
					'project': this.project,
					'iid': prt
				}).then(res => {
					this.menu = res
				})
			},
			getItemList(prt) {
				if (prt != undefined) {
					this.keyword = "";
				}
				if (prt != 0) {
					this.prtnow = prt;
					this.isVertical = true;
					this.maidianstartfun(5);
				} else {
					this.isVertical = false;
				}
				this.$http.get('/client/biz/project/item/pager', {
					project: this.project,
					prt: prt || 0,
					keyword: this.keyword,
				}).then(res => {
					this.projectItemList = res
					console.log(res)
					this.getMenu(prt)
					this.iid = prt
				});
			},
			getConfirmList() {
				this.confirmArr = [];
				this.$http.get('/client/biz/project/item/confirm/list', {
					project: this.project,
				}).then(res => {
					this.confirmList = res
				});
			},
			getContractInfo() {
				this.$http.get('/mgr/biz/contract/info', {
					pid: this.project
				}).then(res => {
					this.ctrPermission = res.permission;
					this.contract = res.info;
					this.files = res.files;
				});
			},
			getContractReply() {
				this.$http.get('/bbs/topic/pager/data', {
					type: 3,
					pid: this.project,
					reply: 1
				}).then(res => {
					this.contractReply = res
				})
			},
			getMaterialList() {
				this.$http.get('/client/biz/material/list', {
					project: this.project
				}).then(res => {
					this.materials = res;
				});
			},
			commentInput(e) {
				var val = e.detail.value;
				if (val == '') {
					this.isSend = true;
				} else {
					this.isSend = false;
				}
			},
			actCancel() {
				this.historySearchDetail = false
				this.keyword = '';
				this.actSearch('');
			},
			actSearch(keyword) {
				this.historySearchDetail = false
				if (keyword != "") {
					if (this.searchHistoryList.length >= 10) {
						this.searchHistoryList.length = 9;
					}
					// this.tabPageDetail = true
					if (this.searchHistoryList.includes(keyword)) {
						let i = this.searchHistoryList.indexOf(keyword);
						this.searchHistoryList.splice(i, 1);
						this.searchHistoryList.unshift(keyword)
					} else {
						this.searchHistoryList.unshift(keyword)
						uni.setStorageSync('searchList', JSON.stringify(this.searchHistoryList))
					}
				}
				this.getItemList();
			},
			bbsCancel() {
				this.BBShistorySearchDetail = false
				this.stopseach = 0;
				this.bbscontent = '';
				this.topicIdx = 1;
				this.ttopicSearchIdx = 1;
				console.log("bbsCancel");
				this.getTopicList();
			},
			bbsSearch(keyword) {
				console.log("进来了嘛。。。。。。。。。。。");
				this.stopseach = 0;
				this.topicIdx = 1;
				this.topicSearchIdx = 1;
				this.BBShistorySearchDetail = false
				if (keyword != "") {
					if (this.BBSsearchHistoryList.length >= 10) {
						this.BBSsearchHistoryList.length = 9;
					}
					// this.tabPageDetail = true
					if (this.BBSsearchHistoryList.includes(keyword)) {
						let i = this.BBSsearchHistoryList.indexOf(keyword);
						this.BBSsearchHistoryList.splice(i, 1);
						this.BBSsearchHistoryList.unshift(keyword)
					} else {
						this.BBSsearchHistoryList.unshift(keyword)
						uni.setStorageSync('searchBbsList', JSON.stringify(this.BBSsearchHistoryList))
					}
				}
				this.getTopicList();
				// this.getTopicListSeach();
			},
			actComment(tid, index) {
				console.log('tid----------------------------------------------', tid)
				//记录当前评论的是第几个帖子
				this.commentIndex = index
				this.isComment = true;
				this.isSend = true;
				this.form = {
					tid: tid,
					content: ''
				}
				this.getCommonWordsList();
				this.$nextTick(() => {
					this.fileList = this.$refs.uUpload.lists;
					this.friends = []
				})
			},
			//评论的评论
			actComment1(tid, rid) {
				uni.setStorage({
					key: 'replyAds',
					data: this.scrollTopReply
				});
				this.isComment = true;
				this.isSend = true;
				this.form = {
					tid: tid,
					rid: rid,
					Content: ''
				}
				this.getCommonWordsList();
				this.$nextTick(() => {
					this.fileList = this.$refs.uUpload.lists;
					this.friends = []
				})
			},
			checkCommonWord(e) {
				this.form.Content = e.currentTarget.dataset.words || '';
				this.isCommonTerms = false;
				this.isSend = false;
			},
			showTransfer(topic) {
				this.isTransfer = true;
				this.checkTopic = topic;
				uni.$TUIKit.login({
					userID: this.$store.state.vuex_user.timUserId,
					userSig: this.$store.state.vuex_user.timUserSig
				}).then(() => {}).catch(() => {});
			},
			actTransfer() {
				if (this.checkGroupId == 0) {
					uni.showToast({
						title: this.$t('project.select_group_chat'),
						icon: 'none',
					})
					return;
				}

				this.sendTextMessage(this.checkGroupId.toString(), this.checkTopic);
				// this.sendImageMessage(this.checkGroupId.toString(), this.checkTopic);
				// this.sendVideoMessage(this.checkGroupId.toString(), this.checkTopic);
				uni.showToast({
					title: this.$t('project.transfer_group_chat'),
				});
				let that = this;
				setTimeout(function() {
					that.isTransfer = false;
				}, 1000)
			},
			actEmojiShow() {
				if (this.emojiShow) {
					this.emojiShow = false;
				} else {
					this.emojiShow = true;
				}
			},
			appendMessage(e) {
				if (this.form.Content !== undefined) {
					this.form.Content = this.form.Content.slice(0, this.cursorStart) + e.detail.message + this.form.Content
						.slice(this.cursorStart);
				} else {
					this.form.Content = e.detail.message
				}
				this.isSend = false;
			},
			actDeleteReplyShow(topic, rid) {
				this.deleteReplyShow = true;
				this.deleteReplyId = rid;
				this.deleteReplyTopic = topic;
			},
			actDeleteReply() {
				let that = this;
				if (that.deleteReplyId > 0) {
					that.$http.post('/bbs/topic/reply/delete', {
						tid: that.deleteReplyTopic,
						rid: that.deleteReplyId
					}).then(res => {
						uni.showToast({
							title: this.$t('mine.del_success')
						});
						that.deleteReplyShow = false;
						that.getTopicListNew();
					})
				}
			},
			/*			commentInput(e) {
							var val = e.detail.value;
							if (val == '') {
								this.isSend = true;
							} else {
								this.isSend = false;
							}
						},*/
			submit(name) {
				let that = this;
				let imgPack = [];
				let smallImgPack = [];
				let bigImgPack = [];
				let newReply = {}
				if (this.fileList.length > 0) {
					this.fileList.forEach(function(item) {
						imgPack.push({
							src: item.filepath,
						});
					});
				}
				if (this.previewList.length > 0) {
					this.previewList.forEach(item => {
						bigImgPack.push({
							src: item.response.data.filepath,
						});
					})
				}
				if (this.thumbnailList.length > 0) {
					this.thumbnailList.forEach(function(item) {
						smallImgPack.push({
							src: item.response.data.filepath,
						});
					})
				}
				//定义上传后的文件,以便给form中AttPack赋值
				var fileList = []
				// if(this.files.length > 0) {
				// 	this.files.forEach((val,key)=>{
				// 		if(typeof val.responseText == 'string') {
				// 			val.responseText = JSON.parse(val.responseText)
				// 		}
				// 		console.log(val.responseText.data)
				// 		fileList.push({
				// 			name: val.name,
				// 			src: val.responseText.data.domain + val.responseText.data.filepath
				// 		})
				// 	})

				// }
				//解析回复内容拼重新拼接回复内容

				let comment = '';
				console.log(that.form.Content)
				if (that.form.Content != '') {
					let content = that.parseText(that.form.Content);
					for (let i = 0; i < content.length; i++) {
						if (content[i].name == 'img') {
							comment +=
								'<img style="width:20px;height:20px;vertical-align:text-bottom;display: inline-block" src="' +
								content[i].src +
								'"></img>';
						} else if (content[i].name == 'span') {
							comment += content[i].text;
						}
					}
				}
				that.form.Content = comment;
				this.form.ImgPack = JSON.stringify(imgPack);
				this.form.SmallImgPack = JSON.stringify(smallImgPack);
				this.form.BigImgPack = JSON.stringify(bigImgPack)
				this.form.VodSrc = that.VodSrc;
				this.form.AttPack = JSON.stringify(fileList);
				if (this.friends.length > 0) {
					var friendsAcc = [];
					this.friends.forEach(function(item) {
						friendsAcc.push(item.Friend);
					});
					this.form.FriendAcc = JSON.stringify(friendsAcc);
				}
				//给新数据赋值后，通过push进数组，无需再重新加载数据
				newReply.AddTimeNum = '5'
				newReply.AddTimeType = 4
				newReply.AddTimeText = ''

				console.log(that.form)

				that.$http.post('/bbs/topic/reply', that.form).then(res => {
					console.log('评论接口结果-------------------------------------------', res)
					that.isComment = false;
					that.emojiShow = false;
					that.form = {
						content: ''
					}
					uni.showToast({
						title: this.$t('mine.pub_success'),
					});
					setTimeout(function() {
						if (name == '动态') {
							that.getTopicListNew();
						}
						if (name == '合同') {
							that.getContractReply();
						}
					}, 1000)
				})
			},
			actVideoPlay(src) {
				uni.navigateTo({
					url: `/pages/TUIKit/TUIPages/TUIChat/components/message-elements/video-play?videoMessage=${src}`
				})

			},
			fullscreenchange(e) {
				if (!e.detail.fullScreen) {
					this.isPlay = false;
				}
			},
			closeVideoPlay() {
				this.isPlay = false;
			},
			actCheck() {
				this.$http.get('/client/biz/person/list', {
					project: this.project
				}).then(res => {
					this.checkLists = res;
				})
				this.isCheckPopup = true;
			},
			actPraise(tid, isGood, idx) {
				this.$store.commit('checkUserLogin');
				let that = this;
				if (that.praise) {
					return;
				}
				let data = {
					tid: tid || 0,
				};
				that.praise = true;
				that.$http.post('/bbs/topic/goods/toggle', data).then(res => {
					that.topics[idx].IsGood = res.stat;
					that.topics[idx].Goods = res.goods;
					that.topics[idx].LikeStaffsText = res.likeStaff;

					//更新本地缓存中的数据
					if (that.topics[idx].id) {
						homeStorage.update(that.topics[idx].id.split('-')[0] + '-' + that.topics[idx].id.split(
							'-')[1], that.topics[idx]);
					}
					that.praise = false;
				});
			},
			checkChange(e) {
				this.arr[e.name] = e;
				if (e.value == false) {
					this.isNext = false;
				}
				this.arr.forEach((item, index) => {
					if (item.value == true) {
						this.isNext = true;
					}
				})
			},
			radioChange(e) {
				this.checkUid = e;
			},
			radioGroupChange(e) {
				this.checkGroupId = e;
			},
			nextFunc() {
				if (this.checkUid == '') {
					uni.showToast({
						title: this.$t('project.choose_verifier'),
						icon: 'none',
						duration: 2000
					});
					return
				}
				this.isCheckPopup = false;
				this.isNext = false;
				this.isCheck = false;
				var iidArr = [];
				this.arr.forEach((item, index) => {
					if (item.value == true) {
						iidArr.push(this.projectItemList[index].Iid);
					}
				});
				this.$http.post('/client/biz/project/item/update', {
					iids: iidArr,
					checkAcc: this.checkUid,
					projectName: this.projectName
				}).then(res => {
					uni.showToast({
						title: this.$t('project.operation'),
					});
					this.getItemList();
				})
			},

			checkedAll(e) {
				if (e.value === true) {
					this.confirmFooterDisplay = true;
					this.confirmList.map((val, index) => {
						val.Checked = true;
						this.confirmArr[index] = {
							value: val.Checked,
							name: index
						};
					})
				} else {
					this.confirmFooterDisplay = false;
					this.confirmList.map((val, index) => {
						val.Checked = false;
						this.confirmArr[index] = {
							value: val.Checked,
							name: index
						};
					})
					this.confirmArr = [];
				}
			},
			confirmChange(e) {
				this.confirmArr[e.name] = e;
				if (e.value == false) {
					this.confirmFooterDisplay = false;
				}
				this.confirmArr.forEach((item, index) => {
					if (item.value == true) {
						this.confirmFooterDisplay = true;
					}
				})
			},
			confirmSubmit(stat) {
				this.confirmFooterDisplay = false;
				var iidArr = [];
				this.confirmArr.forEach((item, index) => {
					if (item.value == true) {
						iidArr.push(this.confirmList[index].Iid);
					}
				});
				if (stat == 2) {
					this.rmkcontent = "";
				}
				this.$http.post('/client/biz/project/item/log/confirm', {
					pid: this.project,
					iids: iidArr,
					stat: stat,
					rmk: this.rmkcontent,
				}).then(res => {
					uni.showToast({
						title: this.$t('project.operation'),
					});
					this.getConfirmList();
				})
			},
			confirmReject() {
				this.showRemark = true;
			},
			goPublish(type) {
				this.$goPage('/repair/publish', {
					type: type,
					project: this.project
				}, true)
			},
			actShowExport() {
				this.showExport = true;
				// const userInfo = uni.getStorageSync('userInfo')
				this.exportEmail = this.$store.state.vuex_user.email;
				this.emaillist.length = 0;
				this.emaillist.push(this.exportEmail);
				this.exportContent = "";
			},
			showAddEmail() {
				this.showExportEmail = true;
				this.exportEmailNew = "";
			},
			addEmail() {
				if (this.exportEmailNew != "") {
					// this.exportEmail = this.exportEmail+";"+this.exportEmailNew
					// this.emaillist = this.exportEmail.split(";")
					var newStr = this.exportEmailNew.trim();
					var emillastC = newStr.substr(-1);
					// console.log(emillastC+"============1============"+newStr);
					if (emillastC == ";") {
						newStr = newStr.slice(0, newStr.length - 1)
					}
					// console.log(newStr+"============2============");
					var listnew = newStr.split(";")
					// console.log(listnew+"============3============"+listnew.length);
					//校验邮箱地址
					// if(listnew[listnew.length-1]==""){
					// 	listnew.length = listnew.length-1;
					// }
					var emailNow = 0
					var emailExp = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
					for (var i = 0; i < listnew.length; i++) {
						if (!emailExp.test(listnew[i])) {
							emailNow = 1;
							break;
						}
					}
					if (emailNow == 1) {
						uni.showToast({
							title: this.$t('mine.msg_email'),
							icon: 'none'
						});
						this.showExportEmail = true;
					} else {
						this.exportEmail = this.exportEmail + ";" + newStr
						this.emaillist = this.exportEmail.split(";")
						this.showExportEmail = false;
					}
				} else {
					this.showExportEmail = false;
				}
			},
			sendEmail() {
				uni.showLoading();
				this.$http.post('/client/biz/project/item/send/email', {
					pid: this.project,
					emails: this.exportEmail,
					content: this.exportContent,
				}).then(res => {
					uni.hideLoading();
					this.showExport = false;
					uni.showToast({
						title: this.$t('project.succeeded'),
					});
				});
			},
			actDel(tid) {
				this.deleteShow = true;
				this.form = {
					tid: tid,
				}
			},
			actCommentDel() {
				let that = this;
				that.$http.post('/bbs/topic/delete', {
					tid: that.form.tid,
					client: 1
				}).then(res => {
					uni.showToast({
						title: this.$t('project.del_success'),
					});
					that.deleteShow = false;
					console.log('删除完成删除完成---------------------------------')
					that.getTopicListNew()
				})
			},
			delMaterial(mid) {
				this.deleteMaterial = true;
				this.mid = mid;
			},
			cfmMaterial(mid) {
				this.comfirmMaterial = true;
				this.mid = mid;
			},
			actDeleteMaterial(e) {
				this.$http.post('/mgr/biz/materials/delete', {
					mid: this.mid,
				}).then(res => {
					uni.showToast({
						title: that.$t('project.operation')
					});
					this.getMaterialList();
				})
			},
			actComfirmMaterial() {
				this.$http.post('/mgr/biz/materials/finish', {
					mid: this.mid
				}).then(res => {
					uni.showToast({
						title: that.$t('project.operation')
					});
					this.getMaterialList();
				})
			},
			maSubmit() {
				let that = this;
				let type = that.maForm.type;
				let desc = that.maForm.desc;
				if (type == '' || type == undefined) {
					uni.showToast({
						title: that.$t('project.spares_type_placeholder'),
						icon: 'none',
						duration: 2000
					});
					return;
				}
				if (desc == '' || type == undefined) {
					uni.showToast({
						title: that.$t('project.spares_desc_placeholder'),
						icon: 'none',
						duration: 2000
					});
					return;
				}
				that.$http.post('/mgr/biz/materials/save', {
					Project: that.project,
					Type: type,
					Content: desc
				}).then(res => {
					uni.showToast({
						title: that.$t('project.operation')
					});
					that.isAddMaterial = false;
					that.getMaterialList();
					that.maForm.type = '';
					that.maForm.desc = '';
				})
			},
			go2User(uid) {
				if (uid > 1) {
					uni.navigateTo({
						url: '/pages/user/index?uid=' + uid
					});
				}
			},
			handleTouchMove(e) {
				if (!this.lock) {
					this.last = e.detail.x;
					this.lock = true;
				}

				if (this.lock && e.detail.x - this.last < -5) {
					this.setData({
						xScale: -75
					});
					setTimeout(() => {
						this.lock = false;
					}, 2000);
				} else if (this.lock && e.detail.x - this.last > 5) {
					this.setData({
						xScale: 0
					});
					setTimeout(() => {
						this.lock = false;
					}, 2000);
				}
			},
			handleImageError(index) {
				this.groupList[index].GroupAvatar = '/static/static/assets/gruopavatar.svg';
			},
			toRoom(groupID, groupName) {
				uni.navigateTo({
					url: `../../../note/group/room/index?to=${groupID}&pid=${this.project}&conversation_name=${groupName}`
				});
			},
			copy(value) {
				let that = this;
				value = value.replace(/<\/?[^>]*>/g, ''); //去除HTML Tag
				value = value.replace(/[|]*\n/, ''); //去除行尾空格
				value = value.replace(/&nbsp;/g, ''); //去掉npsp
				uni.showModal({
					content: value,
					showCancel: true,
					cancelText: that.$t('project.copy'),
					confirmText: that.$t('project.btn_cancel'),
					success: (res) => {
						if (!res.confirm) {
							uni.setClipboardData({
								data: value,
								success: () => {
									uni.showToast({
										title: that.$t('project.copy_success')
									})
								}
							})
						} else {

						}
					}
				})
			},
			parseText(content) {
				let renderDom = [];
				let temp = content;
				let left = -1;
				let right = -1;

				while (temp !== '') {
					left = temp.indexOf('[');
					right = temp.indexOf(']');

					switch (left) {
						case 0:
							if (right === -1) {
								renderDom.push({
									name: 'span',
									text: temp
								});
								temp = '';
							} else {
								const _emoji = temp.slice(0, right + 1);

								if (emojiMap[_emoji]) {
									renderDom.push({
										name: 'img',
										src: emojiUrl + emojiMap[_emoji]
									});
									temp = temp.substring(right + 1);
								} else {
									renderDom.push({
										name: 'span',
										text: '['
									});
									temp = temp.slice(1);
								}
							}

							break;

						case -1:
							renderDom.push({
								name: 'span',
								text: temp
							});
							temp = '';
							break;

						default:
							renderDom.push({
								name: 'span',
								text: temp.slice(0, left)
							});
							temp = temp.substring(left);
							break;
					}
				}

				return renderDom;
			},
			sendTextMessage(gid, topic) {
				let text = topic.Content || '';
				if (text != '') {
					const to = gid;
					const message = uni.$TUIKit.createTextMessage({
						to,
						conversationType: 'GROUP',
						payload: {
							text
						}
					});
					this.$sendTIMMessage(message);
				}
			},
			sendImageMessage(gid, topic) {
				let images = topic.ImgPackJson || [];
				for (var i = 0; i < images.length; i++) {
					console.log("images[i].Src", images[i].Src);
					const message = uni.$TUIKit.createImageMessage({
						to: gid,
						conversationType: 'GROUP',
						payload: {
							file: images[i].Src
						},
						onProgress: percent => {}
					});
					this.$sendTIMMessage(message);
				}
			},
			sendVideoMessage(gid, topic) {
				let videos = topic.VodSrc || '';
				if (videos != '') {
					const message = uni.$TUIKit.createVideoMessage({
						to: gid,
						conversationType: 'GROUP',
						payload: {
							file: videos
						},
						onProgress: percent => {
							this.messageVideos[i].percent = percent;
						}
					});
					this.$sendTIMMessage(message);
				}
			},
			$sendTIMMessage(message) {
				uni.$TUIKit.sendMessage(message)
			},
			touchStart(e) {
				this.touchStartX = e.touches[0].clientX;
				this.touchStartY = e.touches[0].clientY;
			},
			touchEnd(e) {
				let deltaX = e.changedTouches[0].clientX - this.touchStartX;
				let deltaY = e.changedTouches[0].clientY - this.touchStartY;
				if (Math.abs(deltaX) > 50 && Math.abs(deltaX) > Math.abs(deltaY)) {
					if (deltaX >= 0) {

						let menuList = this.menu.MenuList || [];
						let currentItem = menuList[menuList.length - 1] || [];
						if (currentItem.length == 0) {
							this.isVertical = false;
						} else {
							this.getItemList(currentItem.Prt);
						}
					} else {

						let menuList = this.menu.MenuList || [];
						let currentItem = menuList[menuList.length - 1] || [];
						if (currentItem.length == 0) {
							this.isVertical = false;
						} else {
							this.getItemList(currentItem.Prt);
						}
					}
				}
			},
			onuploadEnd(item) {
				console.log(`${item.name}已上传结束，上传状态=${item.type}`);

				// 更新当前状态变化的文件
				this.files.set(item.name, item);

				// 演示上传完成后取服务端数据
				if (item['responseText']) {
					console.log('演示服务器返回的字符串JSON转对象');
					this.files.get(item.name).responseText = JSON.parse(item.responseText);
					console.log(this.files.get(item.name).responseText)
				}
				console.log(this.files.values)

				// 微信小程序Map对象for循环不显示，所以转成普通数组，不要问为什么，我也不知道
				// #ifdef MP-WEIXIN
				this.wxFiles = [...this.files.values()];
				// #endif

				// 强制更新视图
				this.$forceUpdate();
				this.isSend = false

				// ---可删除--演示判断是否所有文件均已上传成功
				let isAll = [...this.files.values()].find(item => item.type !== 'success');
				if (!isAll) {
					console.log('已全部上传完毕');
				} else {
					console.log(isAll.name + '待上传');
				}

			},
			// 上传进度回调
			onprogress(item) {
				// 更新当前状态变化的文件
				this.files.set(item.name, item);
				console.log(this.files.values())
				console.log('打印对象', JSON.stringify(this.files.get(item.name)));
				// 微信小程序Map对象for循环不显示，所以转成普通数组，不要问为什么，我也不知道
				// #ifdef MP-WEIXIN
				this.wxFiles = [...this.files.values()];
				// #endif

				// 强制更新视图
				this.$forceUpdate();

			},
			// 文件选择回调
			onChange(files) {
				// 更新选择的文件
				this.files = files;
				// 强制更新视图
				this.$forceUpdate();

				// 微信小程序Map对象for循环不显示，所以转成普通数组，不要问为什么，我也不知道
				// #ifdef MP-WEIXIN
				this.wxFiles = [...this.files.values()];
				// #endif
			},
			// 手动上传
			upload() {
				// name=指定文件名，不指定则上传所有type等于waiting和fail的文件
				this.$refs['lsjUpload' + this.tabIndex].upload();
			},
			// 移除某个文件
			clear(name) {
				// name=指定文件名，不传name默认移除所有文件
				this.$refs['lsjUpload' + this.tabIndex].clear(name);
			},
			//scroll-view刷新用。用来关闭刷新动画
			handleRefresher(index) {
				console.log('锦鲤啊-------------------')
				console.log(index)
				if (!this.isTriggered) {
					this.isTriggered = true
					setTimeout(() => {
						this.isTriggered = false
					}, 1500)
				}
				console.log(index)
				this.scrollIndex = index
				console.log(this.scrollIndex)
				switch (index) {
					case 0:
						console.log("handleRefresher")
						this.BBShistorySearchDetail = false
						this.getTopicListNew();
						this.getGroupList();
						break;
					case 1:
						break;
					case 2:
						this.historySearchDetail = false
						this.getPermissionPrice();
						this.getItemList(this.iid);
						this.getMenu();
						break;
					case 3:
						break;
					case 4:
						if (this.ctrPermission == 1) {
							this.getContractInfo();
							this.getContractReply();
						} else {
							this.getMaterialList();
						}
						break;
					case 5:
						if (this.ctrPermission == 1) {
							this.getMaterialList();
						}
						break;
					case 6:
						break;
					case 7:
						break;
				}
				if (index != this.swiperCurrent) {
					this.isComment = false;
					//this.isSend = true;
				} else {
					uni.$on('checkItem', (item) => {
						console.log(item)
						this.isComment = true
						this.isSend = false
					})
				}
				this.isAddMaterial = false;
			},
		}
	}
</script>
<style lang="scss">
	@import "./index.css";

	.w-140 {
		width: 140rpx;
	}

	.w-160 {
		width: 160rpx;
	}

	.w-240 {
		width: 240rpx;
	}

	.u-action-active {
		width: 100rpx;
	}
</style>
<style lang="scss" scoped>
	.detail {
		white-space: normal;
		word-break: break-all;
	}


	.center {
		text-align: center;
	}

	.mgr-30 {
		margin-right: 30rpx;
	}

	.mgt-10 {
		margin-top: 10rpx;
	}

	.mgt-20 {
		margin-top: 20rpx;
	}

	.inputStyle {
		padding: 20rpx;
		background: #FFFFFF;
		border: 1rpx solid #EAEAEA;
		border-radius: 8rpx;
	}

	.comBtnStyle {
		width: 260rpx;
		line-height: 60rpx;
		font-size: 28rpx;
		color: #FFFFFF;
		background: #2979ff;
		border-color: #2979ff;
		border-radius: 24rpx;
		float: left;
	}

	.btnStyle {
		margin-top: 14rpx;
		width: 118rpx;
		height: 60rpx;
		line-height: 60rpx;
		color: #FFFFFF;
		font-size: 28rpx;
		background: #2979ff;
		border-color: #2979ff;
		float: right;
	}

	.confirm {
		padding-bottom: 100rpx;

		&-header {
			width: 100%;
			position: absolute;
			left: 0;
			top: 0;
			padding: 20rpx;
			background-color: #fff;

			&_state {
				margin-left: 38rpx;
				font-size: 26rpx;

				.block {
					display: inline-block;
					width: 50rpx;
					height: 35rpx;
					margin-right: 14rpx;
					text-align: center;
					line-height: 35rpx;
				}
			}

			&_state.gray {
				color: #909399;
				// text-decoration: line-through;

				.block {
					background-color: #FDECEC;
				}
			}

			&_state.red {
				color: #909399;
				// text-decoration: line-through;

				.block {
					background-color: rgb(255, 232, 232);
				}
			}

			&_state.blue {
				color: #409EFF;

				.block {
					background-color: #e1ecf9;
				}
			}

			&_state.green {
				color: #67c23a;

				.block {
					background-color: #e5f6dc;
				}
			}
		}

		&-footer {
			z-index: 99;
			position: fixed;
			width: 100%;
			bottom: 200rpx;
			padding-bottom: 20rpx;
			text-align: left;
			background-color: #FFFFFF;

			.list-checkbox {
				margin-left: 20rpx;
				margin-right: 40rpx;
			}

			.u-btn {
				display: inline-block;
				margin: 20rpx;
			}
		}
	}

	.edit-pen {
		margin-left: 20rpx;
	}

	.edit-pen {
		margin-left: 20rpx;
	}

	.detail-repair_item.gray {
		background-color: #F4F4F5;
		text-decoration: line-through;

		.detail-repair_item--order {
			color: #909399;

			&::after {
				border-color: #909399;
			}
		}

		.detail-repair_item--child {
			text-decoration: line-through;
		}
	}

	.detail-repair_item.red {
		background-color: rgb(255, 232, 232);

		.detail-repair_item--order {
			color: #FB0044;

			&::after {
				border-color: #FB0044;
			}
		}
	}

	.detail-repair_item.blue {
		background-color: #e1ecf9;

		.detail-repair_item--order {
			color: #409EFF;

			&::after {
				border-color: #409EFF;
			}
		}
	}

	.detail-repair_item.green {
		background-color: #e5f6dc;

		.detail-repair_item--order {
			color: #67C23A;

			&::after {
				border-color: #67C23A;
			}
		}
	}

	.detail {
		height: 100vh;
	}

	.detail-tabs {
		width: 100%;
		position: absolute;
		left: 0;
		top: 0;
		background-color: #fff;
	}

	.detail-contnet {
		height: 100%;
		padding-top: 100rpx;

		&_swiper {
			height: 94.5vh;
		}
	}

	.project-header_item_flex {
		display: flex;
		align-items: center;
		margin-top: 10rpx;

		.dot {
			width: 10rpx;
			height: 10rpx;
			border-radius: 10rpx;
			background-color: #838488;
			margin-right: 10rpx;
		}
	}

	.project-header {
		&_item {
			margin: 0 16rpx 16rpx 0;

			.icon {
				color: #0089FF;
				margin: 0 6rpx;
			}

			.indexno {
				padding: 3rpx 10rpx;
				color: #909399;
				font-size: 20rpx;
				border-radius: 10rpx;
				border: 1px solid #dbdede;
				margin-right: 10rpx;

			}

			.has_children {
				background-color: #0089FF;
				color: #fff;
				border-radius: 30rpx;
				padding: 3rpx 16rpx;

				.icon-mulu {
					color: #fff;
				}
			}

		}

		&_item.current {
			display: inline-block;
			color: #0089FF;
			line-height: 1.6;
			// background: #E9F4FE;
			border-radius: 4rpx;
		}

		&_item.hidden {
			overflow: hidden;
			word-break: break-all;
			text-overflow: ellipsis;
			display: -webkit-box;
			-webkit-box-orient: vertical;
			-webkit-line-clamp: 2;
		}
	}

	.empty-cnt {
		background-color: #fff;

		.u-empty {
			padding: 100rpx 0;
		}
	}

	.detail-contnet_comment {
		overflow: hidden;
		margin-bottom: 24rpx;
	}

	.article-video {
		position: relative;
		padding-bottom: 30rpx;

		&_item {
			position: relative;
			margin-left: -30rpx;
			width: 100vw;
			height: 100vh;
		}

		&_img {
			max-width: 690rpx;
			max-height: 300rpx;
			width: auto;
		}

		&_play {
			width: 62rpx;
			height: 62rpx;
			position: absolute;
			left: 50%;
			top: 50%;
			transform: translate(-50%, -50%);
			border-radius: 5px;
			background: #505050;

			&--icon {
				width: 100%;
				height: 100%;
			}
		}
	}

	.article-item {
		background-color: #fff;
		padding: 30rpx 30rpx 10rpx;

		.article-header {
			height: 85rpx;
			margin-bottom: 24rpx;

			&_avatar {
				margin-right: 26rpx;
			}

			&_name--text {
				font-size: 30rpx;
				color: #494949;
				font-weight: bold;
			}

			&_time {
				color: #999999;
				font-size: 26rpx;
			}

			&_comment {
				font-size: 26rpx;
				color: #0089FF;

				.icon {
					position: relative;
					top: 2rpx;
					font-size: 32rpx;
					margin-right: 6rpx;
				}
			}
		}

		.article-content {
			font-size: 30rpx;
			margin-bottom: 24rpx;
			white-space: normal;
			word-break: break-all;
			word-wrap: break-word;
			word-break: break-word;
		}

		.article-video {
			position: relative;
			padding-bottom: 30rpx;

			&_item {
				position: relative;
				margin-left: -30rpx;
				width: 100vw;
				height: 100vh;
			}

			&_img {
				max-width: 690rpx;
				max-height: 300rpx;
				width: auto;
			}

			&_play {
				width: 62rpx;
				height: 62rpx;
				position: absolute;
				left: 50%;
				top: 50%;
				transform: translate(-50%, -50%);
				border-radius: 5px;
				background: #505050;

				&--icon {
					width: 100%;
					height: 100%;
				}
			}
		}

		.article-images {
			clear: both;
			overflow: hidden;
			padding-bottom: 10rpx;

			&_item {
				margin: 10rpx;
				float: left;
			}
		}

		.article-annex {
			color: #0089FF;
			margin-bottom: 20rpx;

			.u-icon {
				margin-right: 6rpx;
			}
		}
	}

	.detail-comment {
		padding: 0 32rpx;
		background-color: #fff;
		overflow: hidden;

		&_item {
			padding: 18rpx 0 32rpx;

			.comment-item_avatar {
				margin-right: 12rpx;
			}

			.item-content_header {
				margin-bottom: 20rpx;
			}

			.item-content_header--name {
				font-size: 28rpx;
				color: #131313;
			}

			.item-content_header--time {
				font-size: 20rpx;
				color: #B0B3B8;
			}

			.item-content_text {
				color: #5D5D5F;
				word-break: break-all;
				word-break: break-word;
				white-space: pre-line;
			}
		}
	}

	.comment-box {
		padding: 24rpx 24rpx 38rpx;
		background: #F3F3F3;
	}

	.detail-comment_header {
		height: 76rpx;
		background-color: #fff;
	}

	.comment-header_action {
		font-size: 24rpx;
		color: #0089FF;
	}

	.comment-header_title--icon {
		width: 36rpx;
		height: 36rpx;
		margin-right: 6rpx;
	}

	.comment-header_title--label {
		font-size: 30rpx;
		color: #131313;
	}

	.detail-repair_header {
		padding: 30rpx 34rpx;
		background-color: #fff;
		margin-bottom: 20rpx;

		&--name {
			margin-bottom: 20rpx;

			.icon {
				font-size: 30rpx;
				color: #0089FF;
				margin-right: 12rpx;
			}
		}

		&--text {
			font-size: 31rpx;
			color: #131313;
		}

		&--price {
			color: #555555;
		}

		&--number {
			color: #C50909;
		}

		&--button {
			height: 50rpx;
			padding-left: 10rpx;
			max-width: 200rpx;
			padding-right: 10rpx;
			font-size: 28rpx;
			margin-right: 10rpx;
			color: #0089FF;
		}

		.check-btn {
			position: relative;
			top: -3rpx;
			color: #606266;
			font-size: 32rpx;
			width: 56rpx;
			text-align: center;
			height: 56rpx;
			line-height: 54rpx;
			border-radius: 50px;
			border: 1rpx solid #c0c4cc;
		}
	}

	.detail-repair_content {
		overflow: hidden;
		padding-bottom: 100rpx;

		.check-footer {
			z-index: 999;
			position: fixed;
			width: 100%;
			bottom: 0;
			text-align: center;
			background-color: #FFFFFF;

			.u-btn {
				display: inline-block;
				margin: 20rpx;
			}
		}
	}

	.detail-repair_item {
		position: relative;
		width: 100%;
		padding: 30rpx 34rpx;
		background-color: #fff;
		margin-bottom: 20rpx;

		&--name {
			color: #000000;
			font-weight: 500;
			margin-bottom: 24rpx;
		}

		&--checkbox {
			margin: 0 9rpx 9rpx 0;
		}

		&--order {
			display: inline-block;
			min-width: 36rpx;
			height: 36rpx;
			line-height: 36rpx;
			margin-bottom: 8rpx;
			padding: 0 6rpx;
			color: #909399;
			font-size: 24rpx;
			text-align: center;

			&::after {
				border-radius: 12rpx;
			}
		}

		&--order_blue {
			width: 36rpx;
			height: 36rpx;
			line-height: 36rpx;
			margin-right: 12rpx;
			color: #409EFF;
			font-size: 24rpx;
			text-align: center;
			background-color: #ECF5FF;

			&::after {
				border-radius: 12rpx;
				border-color: #B3D8FF;
			}
		}

		&--info {
			clear: both;
			overflow: hidden;
		}

		&--price {
			color: #555555;
		}

		&--number {
			color: #C50909;
		}

		&--child {
			float: left;
			width: 50%;
			margin-bottom: 10rpx;
			color: #666666;

			&__value {
				color: #000;
				margin-right: 6rpx;

				.color-gray {
					color: #909399;
				}
			}

			&__icon {
				color: #0089FF;
			}
		}

		.child-btn {
			width: inherit;
			float: right;
			display: inline-block;
			padding: 6rpx 12rpx;
			color: #666666;
			background-color: #FFFFFF;
			border-radius: 6rpx;
			border: 1rpx solid #006EFF;

			&_count {
				color: #131313;
				margin-left: 10rpx;
			}
		}

		&--child:nth-child(2n) {
			text-align: right;
		}

		&--child.textarea {
			width: 100%;
		}

		&--value {
			color: #000;
		}

		.checkbox-box {
			margin: 0 30rpx 0 -10rpx;
		}

		.u-checkbox {
			width: 40rpx;
		}

		.tag {
			margin-left: 8rpx;
			padding: 2rpx 8rpx;
			font-size: 24rpx;
			color: #FFFFFF;
			background-color: #c9d8e8;
			border-radius: 4rpx;
		}
	}

	.detail-contract_header {
		padding: 36rpx;
		background-color: #fff;
		margin-bottom: 20rpx;

		.repair-item_cell {
			+.repair-item_cell {
				margin-top: 24rpx;
			}

			&--label {
				color: #666666;
			}

			&--value {
				color: #000000;
			}
		}
	}

	.detail-contract_content {
		overflow: hidden;

		.detail-comment_header {
			height: 88rpx;
			padding: 0 27rpx;
		}

		.article-item {
			margin-bottom: 24rpx;
		}
	}

	.fixed-publish {
		z-index: 9999;
		position: fixed;
		right: 4rpx;
		bottom: 200rpx;
	}

	.mgb-10 {
		margin-bottom: 10rpx;
	}

	.check-box {
		width: 600rpx;
		padding: 40rpx;
	}

	.check-title {
		font-size: 32rpx;
		margin-bottom: 20rpx;
	}

	.check-item {
		width: 100%;
		background-color: #fff;
		height: 106rpx;
		padding: 0 24rpx 0 18rpx;
	}

	.detail-repair_group {
		display: block;
	}

	.detail-header {
		position: relative;

		&_tag {
			position: absolute;
			top: 0;
			left: 50%;
			transform: translateX(-50%);
			padding: 4rpx 24rpx;
			font-size: 24rpx;
			background-color: #ecf5ff;
			border-radius: 0 0 20rpx 20rpx;
			border: #ddd;
		}
	}

	.reject-content {
		margin: 30rpx;
		padding: 20rpx;
		border: 1rpx solid #eeeeee;
		border-radius: 10rpx;
	}

	.reject-content2 {
		margin: 30rpx;
		// padding: 20rpx;
		// border: 1rpx solid #eeeeee;
		// border-radius: 10rpx;
	}

	.reject-content1 {
		// margin: 2rpx,20rpx,2rpx,20rpx;
		margin-top: 2rpx;
		margin-left: 30rpx;
		// padding: 20rpx;
		//border: 1rpx solid #eeeeee;
		//border-radius: 10rpx;
	}

	.search-header {
		background-color: #fff;
		padding: 30rpx;
		margin-bottom: 20rpx;
	}

	.search-content {
		overflow: hidden;
	}

	.like-staffs {
		font-size: 30rpx;
		font-family: sans-serif;
		color: #515b7c;
		padding: 6rpx 12rpx;
		margin-bottom: 20rpx;
		background-color: #F5F5F5;
		border-radius: 10rpx;
		white-space: normal;
		word-break: break-all;
		word-wrap: break-word;
		word-break: break-word;
	}

	.green-text {}

	.red-text {}

	.blue-text {}

	.green-text {}

	.red-text {}

	.blue-text {}

	.publish {
		padding-bottom: 100rpx;
		min-height: 100vh;
		background-color: #fff;

		&-input {
			padding: 30rpx;
			width: 100%;
		}
	}

	.publish-images {
		padding: 0 30rpx;
		margin-bottom: 30rpx;
		clear: both;
		overflow: hidden;

		&_item {
			position: relative;
			margin: 10rpx;
			float: left;

			.u-icon {
				z-index: 999;
				position: absolute;
				top: 6rpx;
				right: 6rpx;
				background-color: #FFFFFF;
				border-radius: 42px;
			}
		}
	}

	.publish-friends {
		padding: 0 30rpx;

		&_item {
			font-size: 28rpx;
			color: #0073DB;
		}
	}

	.uploader_video {
		position: relative;
		width: 118rpx;
		height: 118rpx;
		border-radius: 10rpx;
		overflow: hidden;

		.close-icon {
			z-index: 99999;
			position: absolute;
			top: 4rpx;
			right: 4rpx;

			.u-icon {
				background: #FFFFFF;
				border-radius: 100%;
			}
		}

		&_play--icon {
			width: 36rpx;
			height: 36rpx;
			z-index: 999;
			position: absolute;
			left: 50%;
			top: 50%;
			transform: translate(-50%, -50%);
			border-radius: 5px;
			background: #505050;
		}
	}

	.publish-handle {
		z-index: 999;
		width: 100%;
		position: fixed;
		left: 0;
		bottom: 0;
		background-color: #f1f1f1;

		&_content {
			padding: 20rpx 30rpx;
		}

		&_left {
			font-size: 48rpx;
			color: #777777;

			&--item {
				padding: 0 16rpx;
			}

			.icon {
				font-size: 48rpx;
				// margin-right: 20rpx;
			}

			.popup-item {
				width: 100%;
				height: 100rpx;
				line-height: 100rpx;
				background-color: #fff;
				text-align: center;
				color: #545555;
				font-size: 32rpx;
				border-bottom: 1px solid #e9ecec;
			}

			.divider {
				width: 100%;
				height: 20rpx;
				background-color: rgba(0, 0, 0, 0.6);
			}
		}

		&_right {
			color: #999999;
		}
	}

	.video {
		z-index: 9;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}

	.rich-val {
		word-wrap: break-word;
		word-break: break-word;
		white-space: pre-line;
	}

	.history {
		margin-top: 20rpx;
		background-color: #fff;
		padding: 20rpx 10rpx;
	}

	.history_text {
		margin-left: 10rpx;
		font-size: 30rpx;
	}

	.history_viewContent {
		width: 100%;
		flex-wrap: wrap;
		display: flex;
		padding: 10rpx 20rpx;
	}

	.history_view {
		background-color: #fff;
		padding: 4rpx 20rpx;
		margin-right: 20rpx;
		border: 1px solid #f1f1f1;
		border-radius: 30rpx;
		text-align: center;
		font-size: 28rpx;
	}

	.fire_text {
		margin-left: 10rpx;
		font-size: 12px;
	}

	.fire_search {
		margin-top: 20rpx;
	}

	.fire_viewContent {
		width: 100%;
		flex-wrap: wrap;
		justify-content: space-between;
		display: flex;
		padding: 0 40rpx;
	}

	.fire_view {
		background-color: #E2E0E0;
		padding: 4rpx 20rpx 4rpx 20rpx;
		margin-top: 20rpx;
		min-width: 200rpx;
		flex-shrink: 0;
		border: 1px solid grey;
		border-radius: 15rpx;
		text-align: center;
	}

	.fire_viewContent:after {
		content: '';
		width: 30%;
	}

	.history_hr {
		width: 95%;
		margin-top: 40rpx;
		// text-align: center;
		height: 300rpx;
		padding-left: 10rpx;
		padding-right: 10rpx;
		// overflow:hidden;
		border-radius: 20rpx;
		border: 1px solid grey;
		margin-left: auto;
		margin-right: auto;
	}

	.h_content {
		margin-top: 20rpx;
	}

	// 这里是hr人事的
	.h_title {
		margin-left: 20rpx;
	}

	.h_view_wrap {
		display: flex;
		text-align: center;
		width: 100%;
		flex-wrap: wrap;
		justify-content: space-between;
		float: left;
	}

	.h_view {
		border: 1px solid grey;
		margin-top: 20rpx;
		min-width: 200rpx;
		border-radius: 20rpx;
		padding: 4rpx 20rpx 4rpx 20rpx;
	}

	.shareBtn {
		border-radius: 10rpx;
		padding: 10rpx;
		position: fixed;
		left: 50%;
		transform: translateX(-50%);
		bottom: 0;
	}

	.tabPage {
		width: 100%;
		margin-top: 20rpx;
	}
</style>